Grok  7.6.0
grok.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2020 Grok Image Compression Inc.
3  *
4  * This source code is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Affero General Public License, version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This source code is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Affero General Public License for more details.
12  *
13  * You should have received a copy of the GNU Affero General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  *
17  * This source code incorporates work covered by the BSD 2-clause license.
18  * Please see the LICENSE file in the root directory for details.
19  *
20  */
21 
22 #pragma once
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #include "grk_config.h"
29 #include <stdint.h>
30 #include <stdio.h>
31 #include <stdbool.h>
32 #include <limits.h>
33 
34 #ifdef __GNUC__
35 #define GRK_DEPRECATED(func) func __attribute__ ((deprecated))
36 #elif defined(_MSC_VER)
37 #define GRK_DEPRECATED(func) __declspec(deprecated) func
38 #else
39 #pragma message("WARNING: You need to implement DEPRECATED for this compiler")
40 #define GRK_DEPRECATED(func) func
41 #endif
42 
43 #if defined(GRK_STATIC) || !defined(_WIN32)
44 # if defined(GRK_STATIC) /* static library uses "hidden" */
45 # define GRK_API __attribute__ ((visibility ("hidden")))
46 # else
47 # define GRK_API __attribute__ ((visibility ("default")))
48 # endif
49 # define GRK_CALLCONV
50 #else
51 # define GRK_CALLCONV __stdcall
52 # if defined(GRK_EXPORTS) || defined(DLL_EXPORT)
53 # define GRK_API __declspec(dllexport)
54 # else
55 # define GRK_API __declspec(dllimport)
56 # endif
57 #endif
58 
68  GRK_RAW_FMT, /* MSB / Big Endian */
70  GRK_RAWL_FMT, /* LSB / Little Endian */
72 };
73 
74 #define GRK_PATH_LEN 4096
76 /*
77  * note: range for number of decomposition levels is 0-32
78  * So, accordingly, range for number of resolutions is 1-33
79  * */
80 
81 #define GRK_J2K_MAXRLVLS 33
82 #define GRK_J2K_MAXBANDS (3*GRK_J2K_MAXRLVLS-2)
84 // used by dump
85 #define GRK_IMG_INFO 1
86 #define GRK_J2K_MH_INFO 2
87 #define GRK_J2K_TH_INFO 4
88 #define GRK_J2K_TCH_INFO 8
89 #define GRK_J2K_MH_IND 16
90 #define GRK_J2K_TH_IND 32
91 #define GRK_JP2_INFO 128
92 #define GRK_JP2_IND 256
94 #define GRK_CBLKSTY_LAZY 0x01
95 #define GRK_CBLKSTY_RESET 0x02
96 #define GRK_CBLKSTY_TERMALL 0x04
97 #define GRK_CBLKSTY_VSC 0x08
98 #define GRK_CBLKSTY_PTERM 0x10
99 #define GRK_CBLKSTY_SEGSYM 0x20
100 #define GRK_CBLKSTY_HT 0x40
101 #define GRK_JPH_RSIZ_FLAG 0x4000
122 #define GRK_PROFILE_NONE 0x0000
123 #define GRK_PROFILE_0 0x0001
124 #define GRK_PROFILE_1 0x0002
125 #define GRK_PROFILE_CINEMA_2K 0x0003
126 #define GRK_PROFILE_CINEMA_4K 0x0004
127 #define GRK_PROFILE_CINEMA_S2K 0x0005
128 #define GRK_PROFILE_CINEMA_S4K 0x0006
129 #define GRK_PROFILE_CINEMA_LTS 0x0007
130 #define GRK_PROFILE_BC_SINGLE 0x0100
131 #define GRK_PROFILE_BC_MULTI 0x0200
132 #define GRK_PROFILE_BC_MULTI_R 0x0300
133 #define GRK_PROFILE_BC_MASK 0x030F
134 #define GRK_PROFILE_IMF_2K 0x0400
135 #define GRK_PROFILE_IMF_4K 0x0500
136 #define GRK_PROFILE_IMF_8K 0x0600
137 #define GRK_PROFILE_IMF_2K_R 0x0700
138 #define GRK_PROFILE_IMF_4K_R 0x0800
139 #define GRK_PROFILE_IMF_8K_R 0x0900
140 #define GRK_PROFILE_MASK 0x0FFF
141 #define GRK_PROFILE_PART2 0x8000
142 #define GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF // Mask for Part-2 extension bits
143 
147 #define GRK_EXTENSION_NONE 0x0000
148 #define GRK_EXTENSION_MCT 0x0100
149 #define GRK_IS_PART2(v) ((v) & GRK_PROFILE_PART2)
150 
151 #define GRK_IS_CINEMA(v) (((v) >= GRK_PROFILE_CINEMA_2K) && ((v) <= GRK_PROFILE_CINEMA_S4K))
152 #define GRK_IS_STORAGE(v) ((v) == GRK_PROFILE_CINEMA_LTS)
153 
154 /*
155  *
156  * *********************************************
157  * Broadcast level (3-0 LSB) (15444-1 AMD4,AMD8)
158  * *********************************************
159  *
160  * indicates maximum bit rate and sample rate for a code stream
161  *
162  * Note: Mbit/s == 10^6 bits/s; Msamples/s == 10^6 samples/s
163  *
164  * 0: no maximum rate
165  * 1: 200 Mbits/s, 65 Msamples/s
166  * 2: 200 Mbits/s, 130 Msamples/s
167  * 3: 200 Mbits/s, 195 Msamples/s
168  * 4: 400 Mbits/s, 260 Msamples/s
169  * 5: 800Mbits/s, 520 Msamples/s
170  * >= 6: 2^(level-6) * 1600 Mbits/s, 2^(level-6) * 1200 Msamples/s
171  *
172  * Note: level cannot be greater than 11
173  *
174  * ****************
175  * Broadcast tiling
176  * ****************
177  *
178  * Either single-tile or multi-tile. Multi-tile only permits
179  * 1 or 4 tiles per frame, where multiple tiles have identical
180  * sizes, and are configured in either 2x2 or 1x4 layout.
181  *
182  *************************************************************
183  *
184  * ***************************************
185  * IMF main-level (3-0) LSB (15444-1 AMD8)
186  * ***************************************
187  *
188  * main-level indicates maximum number of samples per second,
189  * as listed above.
190  *
191  *
192  * **************************************
193  * IMF sub-level (7-4) LSB (15444-1 AMD8)
194  * **************************************
195  *
196  * sub-level indicates maximum bit rate for a code stream:
197  *
198  * 0: no maximum rate
199  * >0: 2^sub-level * 100 Mbits/second
200  *
201  * Note: sub-level cannot be greater than 9, and cannot be larger
202  * then maximum of (main-level -2) and 1.
203  *
204  */
206 #define GRK_GET_IMF_OR_BROADCAST_PROFILE(v) ((v) & 0x0f00)
207 
208 #define GRK_LEVEL_MAX 11U
209 #define GRK_GET_LEVEL(v) ((v) & 0xf)
211 /******* BROADCAST **********/
212 
213 #define GRK_IS_BROADCAST(v) ( ((v) >= GRK_PROFILE_BC_SINGLE) && \
214  ((v) <= (GRK_PROFILE_BC_MULTI_R | 0x000b) ) && \
215  ( ((v) & 0xf) <= 0xb ) )
216 
217 /* Maximum component sampling Rate (Mbits/sec) per level */
218 #define GRK_BROADCAST_LEVEL_1_MBITSSEC 200U
219 #define GRK_BROADCAST_LEVEL_2_MBITSSEC 200U
220 #define GRK_BROADCAST_LEVEL_3_MBITSSEC 200U
221 #define GRK_BROADCAST_LEVEL_4_MBITSSEC 400U
222 #define GRK_BROADCAST_LEVEL_5_MBITSSEC 800U
223 #define GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U
224 #define GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U
225 #define GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U
226 #define GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U
227 #define GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U
228 #define GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U
230 #define GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U
231 #define GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U
232 #define GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U
233 #define GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U
234 #define GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U
235 #define GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U
236 #define GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U
237 #define GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U
238 #define GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U
239 #define GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U
240 #define GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U
242 /********IMF ***********************************************************************/
243 
244 #define GRK_IS_IMF(v) ( ((v) >= GRK_PROFILE_IMF_2K) && \
245  ((v) <= (GRK_PROFILE_IMF_8K_R | 0x009b) ) && \
246  ( ((v) & 0xf) <= 0xb ) && \
247  ( ((v) & 0xf0) <= 0x90 ) )
248 
249 /* Maximum component sampling rate (MSamples/sec) per main level */
250 #define GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U
251 #define GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U
252 #define GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U
253 #define GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U
254 #define GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U
255 #define GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U
256 #define GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U
257 #define GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U
258 #define GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U
259 #define GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U
260 #define GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U
262 #define GRK_IMF_SUBLEVEL_MAX 9U
263 #define GRK_GET_IMF_SUBLEVEL(v) (((v) >> 4) & 0xf)
266 #define GRK_IMF_SUBLEVEL_1_MBITSSEC 200U
267 #define GRK_IMF_SUBLEVEL_2_MBITSSEC 400U
268 #define GRK_IMF_SUBLEVEL_3_MBITSSEC 800U
269 #define GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U
270 #define GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U
271 #define GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U
272 #define GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U
273 #define GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U
274 #define GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U
275 /**********************************************************************************/
276 
280 #define GRK_CINEMA_24_CS 1302083U
281 #define GRK_CINEMA_48_CS 651041U
282 #define GRK_CINEMA_24_COMP 1041666U
283 #define GRK_CINEMA_48_COMP 520833U
288 typedef enum _GRK_PROG_ORDER {
290  GRK_LRCP = 0,
291  GRK_RLCP = 1,
292  GRK_RPCL = 2,
293  GRK_PCRL = 3,
294  GRK_CPRL = 4
296 
297 /*
298  *
299  * CIE Lab #defines
300  */
301 #define GRK_CUSTOM_CIELAB_SPACE 0x0
302 #define GRK_DEFAULT_CIELAB_SPACE 0x44454600 //'DEF'
303 #define GRK_CIE_DAY ((((uint32_t) 'C')<<24) + (((uint32_t) 'T')<<16))
304 #define GRK_CIE_D50 ((uint32_t) 0x00443530)
305 #define GRK_CIE_D65 ((uint32_t) 0x00443635)
306 #define GRK_CIE_D75 ((uint32_t) 0x00443735)
307 #define GRK_CIE_SA ((uint32_t) 0x00005341)
308 #define GRK_CIE_SC ((uint32_t) 0x00005343)
309 #define GRK_CIE_F2 ((uint32_t) 0x00004632)
310 #define GRK_CIE_F7 ((uint32_t) 0x00004637)
311 #define GRK_CIE_F11 ((uint32_t) 0x00463131)
312 
316 typedef enum _GRK_COLOR_SPACE {
325  GRK_CLRSPC_ICC = 9
327 
328 /* JPEG 2000 standard values for colour spaces */
337 };
338 
342 typedef enum _GRK_CODEC_FORMAT {
345  GRK_CODEC_JP2 = 2
347 
348 #define GRK_NUM_COMMENTS_SUPPORTED 256
349 #define GRK_MAX_COMMENT_LENGTH (UINT16_MAX-2)
350 
357 typedef void (*grk_msg_callback)(const char *msg, void *client_data);
358 
359 /*
360  ==========================================================
361  codec structures
362  ==========================================================
363  */
364 
369 typedef struct _grk_poc {
371  uint32_t resno0, compno0;
373  uint32_t layno1, resno1, compno1;
375  uint32_t layno0;
376  uint64_t precno0, precno1;
380  char progorder[5];
382  uint32_t tile;
384  uint32_t tx0, tx1, ty0, ty1;
386  uint32_t resS, compS;
388  uint32_t layE, resE, compE;
389  uint64_t prcE;
391  uint32_t txS, txE, tyS, tyE, dx, dy;
393  uint32_t lay_t, res_t, comp_t, tx0_t, ty0_t;
394  uint64_t prc_t;
396 
401  uint32_t dx;
403  uint32_t dy;
406 
409 typedef struct _grk_raw_cparameters {
411  uint32_t width;
413  uint32_t height;
415  uint16_t numcomps;
417  uint32_t prec;
419  bool sgnd;
424 
428 typedef struct _grk_cparameters {
432  uint32_t tx0;
434  uint32_t ty0;
436  uint32_t t_width;
438  uint32_t t_height;
449  uint8_t csty;
455  uint32_t numpocs;
457  uint32_t tcp_numlayers;
460  double tcp_rates[100];
462  double tcp_distoratio[100];
464  uint32_t numresolution;
466  uint32_t cblockw_init;
468  uint32_t cblockh_init;
470  uint8_t cblk_sty;
471  /* flag for high throughput */
472  bool isHT;
478  int32_t roi_compno;
480  uint32_t roi_shift;
481  /* number of precinct size specifications */
482  uint32_t res_spec;
492  uint32_t image_offset_x0;
494  uint32_t image_offset_y0;
496  uint32_t subsampling_dx;
498  uint32_t subsampling_dy;
508  uint32_t max_comp_size;
510  uint8_t tp_on;
512  uint8_t tp_flag;
514  uint8_t tcp_mct;
517  void *mct_data;
524  uint64_t max_cs_size;
527  uint16_t rsiz;
529 
530  // set to true if input file stores capture resolution
533 
536 
539 
540  // 0: bisect with all truncation points, 1: bisect with only feasible truncation points
542  uint32_t numThreads;
543  int32_t deviceId;
544  uint32_t duration; //seconds
546  uint32_t repeats;
547  bool writePLT;
548  bool writeTLM;
549  bool verbose;
551 
555 typedef struct _grk_jp2_cdef_info {
556  uint16_t cn;
557  uint16_t typ;
558  uint16_t asoc;
560 
564 typedef struct _grk_jp2_cdef {
566  uint16_t n;
568 
572 typedef struct _grk_jp2_cmap_comp {
573  uint16_t cmp;
574  uint8_t mtyp, pcol;
576 
580 typedef struct _grk_jp2_pclr {
581  uint32_t *entries;
582  uint8_t *channel_sign;
583  uint8_t *channel_size;
585  uint16_t nr_entries;
586  uint8_t nr_channels;
588 
592 typedef struct _grk_jp2_color {
593  uint8_t *icc_profile_buf;
594  uint32_t icc_profile_len;
599 
603 typedef struct _grk_header_info {
605  uint32_t cblockw_init;
607  uint32_t cblockh_init;
611  uint32_t mct;
614  uint16_t rsiz;
616  uint32_t numresolutions;
617  // coding style can be specified in main header COD segment,
618  // tile header COD segment, and tile component COC segment.
619  // !!! Assume that coding style does not vary across tile components !!!
620  uint8_t csty;
621  // code block style is specified in main header COD segment, and can
622  // be overridden in a tile header. !!! Assume that style does
623  // not vary across tiles !!!
624  uint8_t cblk_sty;
630  uint32_t tx0;
632  uint32_t ty0;
634  uint32_t t_width;
636  uint32_t t_height;
638  uint32_t t_grid_width;
640  uint32_t t_grid_height;
642  uint32_t tcp_numlayers;
643 
645  // ICC profile information
646  // note: the contents of this struct will remain valid
647  // until the codec is destroyed
649  // note: xml_data will remain valid
650  // until codec is destroyed
651  uint8_t *xml_data;
652  size_t xml_data_len;
653  size_t num_comments;
657 
660 
663 
665 
669 typedef struct _grk_dparameters {
677  uint32_t cp_reduce;
684  uint32_t cp_layer;
694  uint32_t DA_x0;
696  uint32_t DA_x1;
698  uint32_t DA_y0;
700  uint32_t DA_y1;
702  bool m_verbose;
704  uint16_t tile_index;
707  uint32_t flags;
709 
713 typedef enum grk_prec_mode {
716 
720 typedef struct _grk_prec {
721  uint32_t prec;
724 
725 #define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)
726 
730 typedef struct _grk_decompress_params {
744  uint32_t DA_x0;
746  uint32_t DA_x1;
748  uint32_t DA_y0;
750  uint32_t DA_y1;
752  bool m_verbose;
754  uint16_t tile_index;
758  uint32_t nb_precision;
759  /* force output colorspace to RGB */
760  bool force_rgb;
761  /* upsample components according to their dx/dy values */
762  bool upsample;
763  /* split output components to different files */
764  bool split_pnm;
765  /* serialize XML metadata to disk */
767  uint32_t compression;
768  // compression "quality". Meaning of "quality" depends
769  // on file format we are writing to
771  int32_t deviceId;
772  uint32_t duration; //seconds
774  uint32_t repeats;
775  bool verbose;
776  uint32_t numThreads;
778 
779 typedef void *grk_codec;
780 
781 /*
782  ==========================================================
783  I/O stream typedef definitions
784  ==========================================================
785  */
786 
787 /*
788  * Callback function prototype for read function
789  *
790  */
791 typedef size_t (*grk_stream_read_fn)(void *p_buffer, size_t nb_bytes,
792  void *user_data);
793 
794 /*
795  * Callback function prototype for zero copy read function
796  */
797 typedef size_t (*grk_stream_zero_copy_read_fn)(void **p_buffer, size_t nb_bytes,
798  void *user_data);
799 
800 /*
801  * Callback function prototype for write function
802  */
803 typedef size_t (*grk_stream_write_fn)(void *p_buffer, size_t nb_bytes,
804  void *user_data);
805 
806 /*
807  * Callback function prototype for (absolute) seek function.
808  */
809 typedef bool (*grk_stream_seek_fn)(uint64_t nb_bytes, void *user_data);
810 
811 /*
812  * Callback function prototype for free user data function
813  */
814 typedef void (*grk_stream_free_user_data_fn)(void *user_data);
815 
816 /*
817  * JPEG 2000 stream.
818  */
819 typedef void *grk_stream;
820 
821 /*
822  ==========================================================
823  image typedef definitions
824  ==========================================================
825  */
826 
827 // component type
829 
834 
835 };
836 
837 // component association
839 
845 
846 };
847 
851 typedef struct _grk_image_comp {
853  uint32_t dx;
855  uint32_t dy;
857  uint32_t w;
859  uint32_t stride;
861  uint32_t h;
863  uint32_t x0;
865  uint32_t y0;
867  uint32_t prec;
868  bool sgnd;
870  int32_t *data;
871  // if true, then image will manage data, otherwise up to caller
872  bool owns_data;
876 
880 typedef struct _grk_image {
883  uint32_t x0;
886  uint32_t y0;
888  uint32_t x1;
890  uint32_t y1;
892  uint32_t numcomps;
898  uint8_t *icc_profile_buf;
900  uint32_t icc_profile_len;
903  uint8_t *iptc_buf;
904  size_t iptc_len;
905  uint8_t *xmp_buf;
906  size_t xmp_len;
908 
912 typedef struct _grk_image_comptparm {
915  uint32_t dx;
918  uint32_t dy;
920  uint32_t w;
921  /* data stride */
922  uint32_t stride;
924  uint32_t h;
926  uint32_t x0;
928  uint32_t y0;
930  uint32_t prec;
932  bool sgnd;
934 
935 /*
936  ==========================================================
937  Information about the JPEG 2000 code stream
938  ==========================================================
939  */
940 
944 typedef struct _grk_packet_info {
946  uint64_t start_pos;
948  uint64_t end_ph_pos;
950  uint64_t end_pos;
952  double disto;
954 
958 typedef struct _grk_marker_info {
960  uint16_t type;
962  uint64_t pos;
964  uint32_t len;
966 
967 
971 typedef struct _grk_tile_info {
973  double *thresh;
975  uint16_t tileno;
977  uint64_t start_pos;
979  uint64_t end_header;
981  uint64_t end_pos;
983  uint32_t pw[GRK_J2K_MAXRLVLS];
985  uint32_t ph[GRK_J2K_MAXRLVLS];
992  int64_t numpix;
993  double distotile;
995  uint32_t marknum;
999  uint32_t maxmarknum;
1001  uint32_t num_tps;
1003 
1007 typedef struct _grk_codestream_info {
1009  double D_max;
1011  uint32_t packno;
1013  uint32_t index_write;
1015  uint32_t numcomps;
1017  uint32_t numlayers;
1019  uint32_t *numdecompos;
1021  uint32_t marknum;
1025  uint32_t maxmarknum;
1029  uint64_t main_head_end;
1035 
1039 typedef struct _grk_tccp_info {
1041  uint32_t compno;
1043  uint8_t csty;
1045  uint32_t numresolutions;
1047  uint32_t cblkw;
1049  uint32_t cblkh;
1051  uint8_t cblk_sty;
1053  uint8_t qmfbid;
1055  uint8_t qntsty;
1061  uint8_t numgbits;
1063  uint32_t roishift;
1069 
1073 typedef struct _grk_tile_v2_info {
1075  uint16_t tileno;
1077  uint32_t csty;
1081  uint32_t numlayers;
1083  uint32_t mct;
1086 
1088 
1092 typedef struct _grk_codestream_info_v2 {
1093  /* Tile info */
1095  uint32_t tx0;
1097  uint32_t ty0;
1099  uint32_t t_width;
1101  uint32_t t_height;
1103  uint32_t t_grid_width;
1105  uint32_t t_grid_height;
1107  uint32_t nbcomps;
1111 
1115 typedef struct _grk_tp_index {
1117  uint64_t start_pos;
1119  uint64_t end_header;
1121  uint64_t end_pos;
1123 
1127 typedef struct _grk_tile_index {
1129  uint16_t tileno;
1131  uint32_t nb_tps;
1133  uint32_t current_nb_tps;
1135  uint32_t current_tpsno;
1139  uint32_t marknum;
1143  uint32_t maxmarknum;
1145 
1149 typedef struct _grk_codestream_index {
1153  uint64_t main_head_end;
1157  uint32_t marknum;
1161  uint32_t maxmarknum;
1162  uint32_t nb_of_tiles;
1165 
1167 // Structs to pass data between grok and plugin
1169 
1173 typedef struct _grk_plugin_pass {
1174  double distortionDecrease; //distortion decrease up to and including this pass
1175  size_t rate; // rate up to and including this pass
1176  size_t length; //stream length for this pass
1178 
1182 typedef struct _grk_plugin_code_block {
1184  // debug info
1185  uint32_t x0, y0, x1, y1;
1186  unsigned int *contextStream;
1188  uint32_t numPix;
1189  uint8_t *compressedData;
1192  size_t numPasses;
1194  unsigned int sortedIndex;
1196 
1200 typedef struct _grk_plugin_precinct {
1201  uint64_t numBlocks;
1204 
1208 typedef struct _grk_plugin_band {
1209  size_t orient;
1210  uint64_t numPrecincts;
1212  float stepsize;
1214 
1218 typedef struct _grk_plugin_resolution {
1219  size_t level;
1220  size_t numBands;
1223 
1231 
1232 #define GRK_DECODE_HEADER (1 << 0)
1233 #define GRK_DECODE_T2 (1 << 1)
1234 #define GRK_DECODE_T1 (1 << 2)
1235 #define GRK_DECODE_POST_T1 (1 << 3)
1236 #define GRK_PLUGIN_DECODE_CLEAN (1 << 4)
1237 #define GRK_DECODE_ALL (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | GRK_DECODE_POST_T1)
1242 typedef struct _grk_plugin_tile {
1243  uint32_t decode_flags;
1247 
1252 
1259 GRK_API bool GRK_CALLCONV grk_initialize(const char *plugin_path,
1260  uint32_t numthreads);
1261 
1266 
1267 /*
1268  ============================
1269  image functions definitions
1270  ============================
1271  */
1272 
1284  grk_image_cmptparm *cmptparms, GRK_COLOR_SPACE clrspc, bool allocData);
1285 
1292 
1299  grk_image_comp *image);
1300 
1307 
1314  grk_image_comp *image);
1315 
1321 GRK_API uint8_t* GRK_CALLCONV grk_buffer_new(size_t len);
1322 
1329 /*
1330  =================================
1331  stream functions definitions
1332  =================================
1333  */
1334 
1346  bool is_input);
1347 
1356 
1364  grk_stream_read_fn p_function);
1365 
1375  grk_stream *stream, grk_stream_zero_copy_read_fn p_function);
1376 
1384  grk_stream_write_fn p_function);
1385 
1393  grk_stream_seek_fn p_function);
1394 
1403  void *data, grk_stream_free_user_data_fn p_function);
1404 
1412  uint64_t data_length);
1413 
1421  const char *fname, size_t buffer_size, bool is_read_stream);
1422 
1432  size_t buffer_len, bool ownsBuffer, bool is_read_stream);
1433 
1440  grk_stream *stream);
1441 
1448  const char *fname);
1449 
1450 /*
1451  ========================================
1452  logger functions definitions
1453  ========================================
1454  */
1462  void *user_data);
1470  void *user_data);
1478  void *user_data);
1479 
1480 /*
1481  ===============================
1482  codec functions definitions
1483  ===============================
1484  */
1485 
1492 
1502  grk_stream *stream);
1503 
1510 
1517  grk_dparameters *parameters);
1518 
1528  grk_dparameters *parameters);
1529 
1541  grk_header_info *header_info, grk_image **image);
1542 
1557  grk_image *image, uint32_t start_x, uint32_t start_y, uint32_t end_x,
1558  uint32_t end_y);
1559 
1569  grk_plugin_tile *tile, grk_image *image);
1570 
1581  grk_image *image, uint16_t tile_index);
1582 
1583 /* COMPRESSION FUNCTIONS*/
1584 
1593  grk_stream *stream);
1594 
1617  grk_cparameters *parameters);
1618 
1627  grk_cparameters *parameters, grk_image *image);
1628 
1636 
1644 
1666  uint16_t tile_index, uint8_t *data, uint64_t data_size);
1667 
1668 
1677  grk_plugin_tile *tile);
1678 
1679 
1685 
1686 
1692  grk_codestream_info_v2 **cstr_info);
1693 
1702 GRK_API void GRK_CALLCONV grk_dump_codec(grk_codec codec, uint32_t info_flag,
1703  FILE *output_stream);
1704 
1714  grk_codec codec);
1715 
1725 
1732  grk_codestream_index **p_cstr_index);
1733 
1745  float *pEncodingMatrix, int32_t *p_dc_shift, uint32_t pNbComp);
1746 
1747 /*****************
1748  Plugin Interface
1749  ******************/
1750 
1751 /*
1752  Plugin management
1753  */
1754 
1755 typedef struct _grk_plugin_load_info {
1756  const char *plugin_path;
1765 
1770 
1771 // No debug is done on plugin. Production setting.
1772 #define GRK_PLUGIN_STATE_NO_DEBUG 0x0
1774 /*
1775  For compress debugging, the plugin first performs a T1 compress.
1776  Then:
1777  1. perform host DWT on plugin MCT data, and write to host image
1778  This way, both plugin and host start from same point
1779  (assume MCT is equivalent for both host and plugin)
1780  2. map plugin DWT data, compare with host DWT, and then write to plugin image
1781  At this point in the code, the plugin image holds plugin DWT data. And if no warnings are triggered,
1782  then we can safely say that host and plugin DWT data are identical.
1783  3. Perform host compress, skipping MCT and DWT (they have already been performed)
1784  4. during host compress, each context that is formed is compared against context stream from plugin
1785  5. rate control - synch with plugin code stream, and compare
1786  6. T2 and store to disk
1787  */
1788 
1789 #define GRK_PLUGIN_STATE_DEBUG 0x1
1790 #define GRK_PLUGIN_STATE_PRE_TR1 0x2
1791 #define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4
1792 #define GRK_PLUGIN_STATE_MCT_ONLY 0x8
1798 
1799 /*
1800  Plugin encoding
1801  */
1802 typedef struct _grk_plugin_init_info {
1803  int32_t deviceId;
1804  bool verbose;
1806 
1811 
1813  const char *input_file_name;
1815  const char *output_file_name;
1819  uint8_t *compressBuffer;
1821  unsigned int error_code;
1823 
1826 
1834  grk_cparameters *encode_parameters,
1836 
1848 GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress(const char *input_dir,
1849  const char *output_dir, grk_cparameters *encode_parameters,
1851 
1856 
1861 
1862 /*
1863  Plugin decompression
1864  */
1865 
1866 typedef int (*GROK_INIT_DECODERS)(grk_header_info *header_info,
1867  grk_image *image);
1868 
1870  size_t deviceId;
1872  const char *input_file_name;
1873  const char *output_file_name;
1874  // input file format 0: J2K, 1: JP2
1876  // output file format 0: PGX, 1: PxM, 2: BMP etc
1885  unsigned int error_code;
1886  uint32_t decode_flags;
1888 
1889 typedef int32_t (*grk_plugin_decode_callback)(
1891 
1899  grk_decompress_parameters *decompress_parameters,
1900  grk_plugin_decode_callback callback);
1901 
1913  const char *input_dir, const char *output_dir,
1914  grk_decompress_parameters *decompress_parameters,
1915  grk_plugin_decode_callback callback);
1916 
1921 
1926 
1927 #ifdef __cplusplus
1928 }
1929 #endif
1930 
_grk_decompress_params
Decompress parameters.
Definition: grok.h:730
_grk_tile_index::nb_tps
uint32_t nb_tps
number of tile parts
Definition: grok.h:1131
GRK_COMPONENT_ASSOC_WHOLE_IMAGE
@ GRK_COMPONENT_ASSOC_WHOLE_IMAGE
Definition: grok.h:840
_grk_codestream_index
Code stream index info.
Definition: grok.h:1149
_grk_tccp_info::prch
uint32_t prch[GRK_J2K_MAXRLVLS]
precinct height
Definition: grok.h:1067
_grk_tile_info::pw
uint32_t pw[GRK_J2K_MAXRLVLS]
precinct number for each resolution level (width)
Definition: grok.h:983
_grk_raw_cparameters::prec
uint32_t prec
bit depth of the raw image
Definition: grok.h:417
_grk_cparameters::duration
uint32_t duration
Definition: grok.h:544
_grk_plugin_decode_callback_info::plugin_owns_image
bool plugin_owns_image
Definition: grok.h:1883
_grk_cparameters::t_width
uint32_t t_width
XTsiz.
Definition: grok.h:436
_grk_plugin_pass::rate
size_t rate
Definition: grok.h:1175
_grk_dparameters::nb_tile_to_decode
uint32_t nb_tile_to_decode
Number of tiles to decompress.
Definition: grok.h:706
_grk_image_comptparm::w
uint32_t w
data width
Definition: grok.h:920
grk_precision_mode
enum grk_prec_mode grk_precision_mode
Precision mode.
_grk_jp2_cdef_info::asoc
uint16_t asoc
Definition: grok.h:558
_grk_decompress_params::infile
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:734
grk_stream_create
GRK_API grk_stream *GRK_CALLCONV grk_stream_create(size_t buffer_size, bool is_input)
Create an abstract stream.
grk_plugin_stop_batch_decompress
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress(void)
Stop batch decompress.
_grk_poc::dx
uint32_t dx
Definition: grok.h:391
grk_tile_index
struct _grk_tile_index grk_tile_index
Tile index info.
GRK_PROG_UNKNOWN
@ GRK_PROG_UNKNOWN
place-holder
Definition: grok.h:289
GRK_ENUM_CLRSPC_SYCC
@ GRK_ENUM_CLRSPC_SYCC
Definition: grok.h:335
GRK_ENUM_CLRSPC_SRGB
@ GRK_ENUM_CLRSPC_SRGB
Definition: grok.h:333
_grk_plugin_code_block::contextStream
unsigned int * contextStream
Definition: grok.h:1186
grk_stream_set_read_function
GRK_API void GRK_CALLCONV grk_stream_set_read_function(grk_stream *stream, grk_stream_read_fn p_function)
Set the given function to be used as a read function.
grk_precision
struct _grk_prec grk_precision
Precision.
_grk_image::numcomps
uint32_t numcomps
number of components in the image
Definition: grok.h:892
_grk_plugin_decode_callback_info::output_file_name
const char * output_file_name
Definition: grok.h:1873
grk_stream_create_mem_stream
GRK_API grk_stream *GRK_CALLCONV grk_stream_create_mem_stream(uint8_t *buf, size_t buffer_len, bool ownsBuffer, bool is_read_stream)
Create stream from buffer.
grk_decompress_tile
GRK_API bool GRK_CALLCONV grk_decompress_tile(grk_codec codec, grk_image *image, uint16_t tile_index)
Decompress a specific tile.
_grk_header_info::color
grk_jp2_color color
Definition: grok.h:648
_grk_raw_comp_cparameters
Definition: grok.h:399
_grk_cparameters::roi_compno
int32_t roi_compno
region of interest: affected component in [0..3]; -1 indicates no ROI
Definition: grok.h:478
GRK_CODEC_FORMAT
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Supported codecs.
_grk_plugin_precinct
Plugin precinct.
Definition: grok.h:1200
_grk_packet_info::start_pos
uint64_t start_pos
packet start position (including SOP marker if it exists)
Definition: grok.h:946
grk_set_error_handler
GRK_API bool GRK_CALLCONV grk_set_error_handler(grk_msg_callback p_callback, void *user_data)
Set error handler.
grk_plugin_decode_callback
int32_t(* grk_plugin_decode_callback)(grk_plugin_decode_callback_info *info)
Definition: grok.h:1889
GRK_PATH_LEN
#define GRK_PATH_LEN
Maximum allowed size for filenames.
Definition: grok.h:74
_grk_decompress_params::deviceId
int32_t deviceId
Definition: grok.h:771
GRK_TIF_FMT
@ GRK_TIF_FMT
Definition: grok.h:67
_grk_cparameters::rateControlAlgorithm
uint32_t rateControlAlgorithm
Definition: grok.h:541
_grk_poc::progorder
char progorder[5]
Progression order string.
Definition: grok.h:380
_grk_poc
Progression order changes.
Definition: grok.h:369
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.
_grk_poc::layno1
uint32_t layno1
Layer num end, resolution num end, component num end, given by POC.
Definition: grok.h:373
_grk_tile_index::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1141
grk_get_cstr_index
GRK_API grk_codestream_index *GRK_CALLCONV grk_get_cstr_index(grk_codec codec)
Get the code stream index from the codec.
GRK_COMPONENT_ASSOC_COLOUR_1
@ GRK_COMPONENT_ASSOC_COLOUR_1
Definition: grok.h:841
_grk_poc::resE
uint32_t resE
Definition: grok.h:388
grk_stream_create_mapped_file_read_stream
GRK_API grk_stream *GRK_CALLCONV grk_stream_create_mapped_file_read_stream(const char *fname)
Create mapped file stream.
GRK_PXM_FMT
@ GRK_PXM_FMT
Definition: grok.h:63
_grk_dparameters::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:688
_grk_header_info::num_comments
size_t num_comments
Definition: grok.h:653
_grk_tile_info::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:999
_grk_raw_comp_cparameters::dy
uint32_t dy
subsampling in Y direction
Definition: grok.h:403
_grk_cparameters::display_resolution
double display_resolution[2]
Definition: grok.h:538
_grk_decompress_params::m_verbose
bool m_verbose
Verbose mode.
Definition: grok.h:752
_grk_poc::txS
uint32_t txS
Start and end values of tile width and height, initialized in pi_initialise_encode.
Definition: grok.h:391
_grk_raw_cparameters
Definition: grok.h:409
_grk_poc::resno0
uint32_t resno0
Resolution num start, component num start, given by POC.
Definition: grok.h:371
grk_create_decompress
GRK_API grk_codec GRK_CALLCONV grk_create_decompress(GRK_CODEC_FORMAT format, grk_stream *stream)
Create J2K/JP2 decompression structure.
_grk_header_info::mct
uint32_t mct
multi-component transform identifier
Definition: grok.h:611
_grk_jp2_cdef_info::typ
uint16_t typ
Definition: grok.h:557
_grk_plugin_code_block::y0
uint32_t y0
Definition: grok.h:1185
_grk_jp2_color::jp2_cdef
grk_jp2_cdef * jp2_cdef
Definition: grok.h:595
_grk_plugin_load_info
Definition: grok.h:1755
GRK_CLRSPC_CMYK
@ GRK_CLRSPC_CMYK
CMYK.
Definition: grok.h:322
_grk_cparameters::write_capture_resolution_from_file
bool write_capture_resolution_from_file
Definition: grok.h:531
_grk_header_info::cblk_sty
uint8_t cblk_sty
Definition: grok.h:624
_grk_image_comp::stride
uint32_t stride
data stride
Definition: grok.h:859
_grk_plugin_decode_callback_info::decoder_parameters
grk_decompress_parameters * decoder_parameters
Definition: grok.h:1881
_grk_tccp_info::roishift
uint32_t roishift
Region Of Interest shift.
Definition: grok.h:1063
_grk_codestream_info::tile
grk_tile_info * tile
information regarding tiles inside image
Definition: grok.h:1033
grk_plugin_encode_user_callback_info::compressBuffer
uint8_t * compressBuffer
Definition: grok.h:1819
_grk_tile_v2_info::tileno
uint16_t tileno
number (index) of tile
Definition: grok.h:1075
GRK_COLOR_SPACE
enum _GRK_COLOR_SPACE GRK_COLOR_SPACE
Supported image color spaces.
_grk_tccp_info::compno
uint32_t compno
component index
Definition: grok.h:1041
_grk_image_comptparm::sgnd
bool sgnd
true if data is signed
Definition: grok.h:932
GRK_LRCP
@ GRK_LRCP
layer-resolution-component-precinct order
Definition: grok.h:290
_grk_header_info::has_capture_resolution
bool has_capture_resolution
Definition: grok.h:658
_grk_decompress_params::verbose
bool verbose
Definition: grok.h:775
GRK_COMPONENT_ASSOC_COLOUR_3
@ GRK_COMPONENT_ASSOC_COLOUR_3
Definition: grok.h:843
GRK_COMPONENT_TYPE
GRK_COMPONENT_TYPE
Definition: grok.h:828
_grk_jp2_pclr
Palette data: table entries, palette columns.
Definition: grok.h:580
GRK_CALLCONV
#define GRK_CALLCONV
Definition: grok.h:49
_grk_decompress_params::repeats
uint32_t repeats
Definition: grok.h:774
GRK_ENUM_CLRSPC_CIE
@ GRK_ENUM_CLRSPC_CIE
Definition: grok.h:332
_grk_codestream_index::main_head_end
uint64_t main_head_end
main header end position (first SOT position)
Definition: grok.h:1153
_grk_tile_v2_info::mct
uint32_t mct
multi-component transform identifier
Definition: grok.h:1083
_grk_image::display_resolution
double display_resolution[2]
Definition: grok.h:902
_grk_header_info::csty
uint8_t csty
Definition: grok.h:620
GRK_CLRSPC_SRGB
@ GRK_CLRSPC_SRGB
sRGB
Definition: grok.h:318
_grk_header_info::t_width
uint32_t t_width
XTsiz.
Definition: grok.h:634
_grk_codestream_info_v2::nbcomps
uint32_t nbcomps
number of components
Definition: grok.h:1107
grk_plugin_compress
GRK_API int32_t GRK_CALLCONV grk_plugin_compress(grk_cparameters *encode_parameters, GRK_PLUGIN_ENCODE_USER_CALLBACK callback)
Compress with plugin.
_grk_cparameters::subsampling_dx
uint32_t subsampling_dx
subsampling value for dx
Definition: grok.h:496
_grk_image::comps
grk_image_comp * comps
image components
Definition: grok.h:896
grk_plugin_encode_user_callback_info::image
grk_image * image
Definition: grok.h:1817
grk_destroy_cstr_info
GRK_API void GRK_CALLCONV grk_destroy_cstr_info(grk_codestream_info_v2 **cstr_info)
Destroy Codestream information after compression or decompression.
_grk_tccp_info::stepsizes_expn
uint32_t stepsizes_expn[GRK_J2K_MAXBANDS]
stepsizes used for quantization
Definition: grok.h:1059
_grk_cparameters::write_capture_resolution
bool write_capture_resolution
Definition: grok.h:534
_grk_cparameters::tcp_rates
double tcp_rates[100]
rates of layers, expressed as compression ratios.
Definition: grok.h:460
_grk_decompress_params::serialize_xml
bool serialize_xml
Definition: grok.h:766
grk_codestream_index
struct _grk_codestream_index grk_codestream_index
Code stream index info.
_grk_codestream_info::marknum
uint32_t marknum
number of markers
Definition: grok.h:1021
_grk_tile_info::start_pos
uint64_t start_pos
start position
Definition: grok.h:977
_grk_image::xmp_buf
uint8_t * xmp_buf
Definition: grok.h:905
_grk_header_info::t_height
uint32_t t_height
YTsiz.
Definition: grok.h:636
_grk_tile_info
Tile info.
Definition: grok.h:971
_grk_dparameters::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:690
GRK_UNK_FMT
@ GRK_UNK_FMT
Definition: grok.h:60
grk_get_cstr_info
GRK_API grk_codestream_info_v2 *GRK_CALLCONV grk_get_cstr_info(grk_codec codec)
Get code stream information from codec.
_grk_codestream_info_v2::t_width
uint32_t t_width
tile size in x = XTsiz
Definition: grok.h:1099
grk_msg_callback
void(* grk_msg_callback)(const char *msg, void *client_data)
Callback function prototype for logging.
Definition: grok.h:357
grk_codec
void * grk_codec
Definition: grok.h:779
_grk_decompress_params::force_rgb
bool force_rgb
Definition: grok.h:760
_grk_plugin_code_block
Plugin code block.
Definition: grok.h:1182
_grk_jp2_cmap_comp::pcol
uint8_t pcol
Definition: grok.h:574
_grk_cparameters::tile_size_on
bool tile_size_on
size of tile: tile_size_on = false (not in argument) or = true (in argument)
Definition: grok.h:430
_grk_cparameters::cblockh_init
uint32_t cblockh_init
initial code block height (default to 64)
Definition: grok.h:468
_grk_cparameters::prog_order
GRK_PROG_ORDER prog_order
progression order (default GRK_LRCP)
Definition: grok.h:451
_grk_codestream_index::main_head_start
uint64_t main_head_start
main header start position (SOC position)
Definition: grok.h:1151
_grk_decompress_params::compression
uint32_t compression
Definition: grok.h:767
_grk_decompress_params::tile_index
uint16_t tile_index
tile number of the decoded tile
Definition: grok.h:754
_grk_plugin_decode_callback_info::image
grk_image * image
Definition: grok.h:1882
_grk_plugin_code_block::numBitPlanes
size_t numBitPlanes
Definition: grok.h:1191
_grk_header_info::has_display_resolution
bool has_display_resolution
Definition: grok.h:661
_grk_header_info::cblockh_init
uint32_t cblockh_init
initial code block height, default to 64
Definition: grok.h:607
grk_set_default_decompress_params
GRK_API void GRK_CALLCONV grk_set_default_decompress_params(grk_dparameters *parameters)
Initialize decompress parameters with default values.
_grk_plugin_decode_callback_info::l_stream
grk_stream * l_stream
Definition: grok.h:1878
GRK_CLRSPC_GRAY
@ GRK_CLRSPC_GRAY
grayscale
Definition: grok.h:319
_grk_cparameters::prch_init
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition: grok.h:486
_grk_tp_index
Tile part index info.
Definition: grok.h:1115
_grk_plugin_decode_callback_info::tile
grk_plugin_tile * tile
Definition: grok.h:1884
_grk_decompress_params::DA_y1
uint32_t DA_y1
Decoding area bottom boundary.
Definition: grok.h:750
_grk_header_info::enumcs
GRK_ENUM_COLOUR_SPACE enumcs
Definition: grok.h:644
_grk_image_comptparm::dy
uint32_t dy
YRsiz: vertical separation of a sample of component with respect to the reference grid.
Definition: grok.h:918
_grk_cparameters::capture_resolution_from_file
double capture_resolution_from_file[2]
Definition: grok.h:532
GRK_CLRSPC_SYCC
@ GRK_CLRSPC_SYCC
standard YCC (YUV)
Definition: grok.h:320
_grk_dparameters::cp_reduce
uint32_t cp_reduce
Set the number of highest resolution levels to be discarded.
Definition: grok.h:677
_grk_decompress_params::DA_x1
uint32_t DA_x1
Decoding area right boundary.
Definition: grok.h:746
_grk_codestream_info
Code stream info.
Definition: grok.h:1007
GRK_PREC_MODE_SCALE
@ GRK_PREC_MODE_SCALE
Definition: grok.h:714
grk_plugin_encode_user_callback_info::encoder_parameters
grk_cparameters * encoder_parameters
Definition: grok.h:1816
_grk_raw_cparameters::height
uint32_t height
height of the raw image
Definition: grok.h:413
_grk_cparameters::tp_on
uint8_t tp_on
Tile part generation.
Definition: grok.h:510
_grk_packet_info::end_ph_pos
uint64_t end_ph_pos
end of packet header position (including EPH marker if it exists)
Definition: grok.h:948
_grk_plugin_pass
Plugin pass.
Definition: grok.h:1173
_grk_poc::prg
GRK_PROG_ORDER prg
Definition: grok.h:378
_grk_poc::compno0
uint32_t compno0
Definition: grok.h:371
_grk_tccp_info::cblkh
uint32_t cblkh
code-blocks height
Definition: grok.h:1049
grk_plugin_tile
struct _grk_plugin_tile grk_plugin_tile
Plugin tile.
grk_plugin_tile_component
Plugin tile component.
Definition: grok.h:1227
GRK_ENUM_CLRSPC_CMYK
@ GRK_ENUM_CLRSPC_CMYK
Definition: grok.h:331
_grk_tccp_info::numgbits
uint8_t numgbits
number of guard bits
Definition: grok.h:1061
grk_destroy_cstr_index
GRK_API void GRK_CALLCONV grk_destroy_cstr_index(grk_codestream_index **p_cstr_index)
Destroy code stream index.
_grk_codestream_index::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1159
grk_image_single_component_data_alloc
GRK_API bool GRK_CALLCONV grk_image_single_component_data_alloc(grk_image_comp *image)
Allocate data for single image component.
_grk_tile_v2_info::tccp_info
grk_tccp_info * tccp_info
information concerning tile component parameters
Definition: grok.h:1085
_grk_cparameters::prcw_init
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:484
_grk_image_comptparm::h
uint32_t h
data height
Definition: grok.h:924
_grk_plugin_code_block::numPix
uint32_t numPix
Definition: grok.h:1188
_grk_plugin_band::numPrecincts
uint64_t numPrecincts
Definition: grok.h:1210
_grk_plugin_tile
Plugin tile.
Definition: grok.h:1242
_grk_codestream_info::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1023
_grk_jp2_cmap_comp::cmp
uint16_t cmp
Definition: grok.h:573
GROK_INIT_DECODERS
int(* GROK_INIT_DECODERS)(grk_header_info *header_info, grk_image *image)
Definition: grok.h:1866
_grk_tile_info::end_pos
uint64_t end_pos
end position
Definition: grok.h:981
grk_plugin_batch_compress
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress(const char *input_dir, const char *output_dir, grk_cparameters *encode_parameters, GRK_PLUGIN_ENCODE_USER_CALLBACK callback)
Batch compress with plugin.
_grk_jp2_color::icc_profile_len
uint32_t icc_profile_len
Definition: grok.h:594
grk_start_compress
GRK_API bool GRK_CALLCONV grk_start_compress(grk_codec codec)
Start compressing current image.
_grk_plugin_code_block::passes
grk_plugin_pass passes[67]
Definition: grok.h:1193
_grk_marker_info::type
uint16_t type
marker type
Definition: grok.h:960
_grk_cparameters::roi_shift
uint32_t roi_shift
region of interest: upshift value
Definition: grok.h:480
_grk_jp2_color::jp2_has_colour_specification_box
uint8_t jp2_has_colour_specification_box
Definition: grok.h:597
_grk_image_comp::w
uint32_t w
data width
Definition: grok.h:857
GRK_COMPONENT_TYPE_PREMULTIPLIED_OPACITY
@ GRK_COMPONENT_TYPE_PREMULTIPLIED_OPACITY
Definition: grok.h:832
_grk_prec::mode
grk_precision_mode mode
Definition: grok.h:722
grk_plugin_get_debug_state
GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state()
Get debug state of plugin.
_grk_image::icc_profile_len
uint32_t icc_profile_len
size of ICC profile
Definition: grok.h:900
_grk_plugin_precinct::blocks
grk_plugin_code_block ** blocks
Definition: grok.h:1202
_grk_plugin_decode_callback_info::header_info
grk_header_info header_info
Definition: grok.h:1880
grk_buffer_new
GRK_API uint8_t *GRK_CALLCONV grk_buffer_new(size_t len)
Allocate memory for meta data.
GRK_CLRSPC_CUSTOM_CIE
@ GRK_CLRSPC_CUSTOM_CIE
custom CIE LAB
Definition: grok.h:324
_grk_cparameters::kernelBuildOptions
uint32_t kernelBuildOptions
Definition: grok.h:545
_grk_tp_index::end_pos
uint64_t end_pos
end position
Definition: grok.h:1121
_grk_cparameters::writePLT
bool writePLT
Definition: grok.h:547
_grk_header_info::prcw_init
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:626
GRK_J2K_FMT
@ GRK_J2K_FMT
Definition: grok.h:61
grk_plugin_precinct
struct _grk_plugin_precinct grk_plugin_precinct
Plugin precinct.
_grk_codestream_info::numcomps
uint32_t numcomps
component numbers
Definition: grok.h:1015
grk_jp2_color
struct _grk_jp2_color grk_jp2_color
ICC profile, palette, component mapping, channel description.
_grk_poc::tx0_t
uint32_t tx0_t
Definition: grok.h:393
grk_compress_with_plugin
GRK_API bool GRK_CALLCONV grk_compress_with_plugin(grk_codec codec, grk_plugin_tile *tile)
Encode an image into a JPEG 2000 code stream using plugin.
_grk_plugin_decode_callback_info::deviceId
size_t deviceId
Definition: grok.h:1870
_grk_header_info::prch_init
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition: grok.h:628
_grk_decompress_params::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format 0: PGX, 1: PxM, 2: BMP
Definition: grok.h:740
_grk_jp2_pclr::entries
uint32_t * entries
Definition: grok.h:581
_grk_header_info::numresolutions
uint32_t numresolutions
number of resolutions
Definition: grok.h:616
_grk_decompress_params::kernelBuildOptions
uint32_t kernelBuildOptions
Definition: grok.h:773
_grk_cparameters::capture_resolution
double capture_resolution[2]
Definition: grok.h:535
_grk_plugin_code_block::x0
uint32_t x0
Definition: grok.h:1185
grk_compress
GRK_API bool GRK_CALLCONV grk_compress(grk_codec codec)
Encode an image into a JPEG 2000 code stream.
grk_packet_info
struct _grk_packet_info grk_packet_info
Packet info.
grk_image_destroy
GRK_API void GRK_CALLCONV grk_image_destroy(grk_image *image)
Deallocate all resources associated with an image.
_grk_cparameters::res_spec
uint32_t res_spec
Definition: grok.h:482
_grk_header_info::xml_data
uint8_t * xml_data
Definition: grok.h:651
_grk_tile_index::current_tpsno
uint32_t current_tpsno
current tile-part index
Definition: grok.h:1135
GRK_CODEC_JP2
@ GRK_CODEC_JP2
JP2 file format : read/write.
Definition: grok.h:345
grk_plugin_cleanup
GRK_API void GRK_CALLCONV grk_plugin_cleanup(void)
Release plugin resources.
_grk_codestream_index::codestream_size
uint64_t codestream_size
code stream's size
Definition: grok.h:1155
_grk_codestream_index::marknum
uint32_t marknum
number of markers
Definition: grok.h:1157
GRK_COMPONENT_TYPE_COLOUR
@ GRK_COMPONENT_TYPE_COLOUR
Definition: grok.h:830
GRK_J2K_MAXBANDS
#define GRK_J2K_MAXBANDS
Maximum number of sub-bands.
Definition: grok.h:82
_grk_tile_info::marknum
uint32_t marknum
number of markers
Definition: grok.h:995
_grk_decompress_params::split_pnm
bool split_pnm
Definition: grok.h:764
_grk_codestream_info_v2::ty0
uint32_t ty0
tile origin in y = YTOsiz
Definition: grok.h:1097
grk_jp2_pclr
struct _grk_jp2_pclr grk_jp2_pclr
Palette data: table entries, palette columns.
_grk_header_info::comment_len
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:655
grk_plugin_encode_user_callback_info
struct grk_plugin_encode_user_callback_info grk_plugin_encode_user_callback_info
_grk_marker_info::len
uint32_t len
length, marker value included
Definition: grok.h:964
GRK_CODEC_J2K
@ GRK_CODEC_J2K
JPEG 2000 code stream : read/write.
Definition: grok.h:344
_grk_image_comp::association
GRK_COMPONENT_ASSOC association
Definition: grok.h:874
_grk_image::capture_resolution
double capture_resolution[2]
Definition: grok.h:901
_grk_decompress_params::core
grk_dparameters core
core library parameters
Definition: grok.h:732
_grk_header_info::rsiz
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition: grok.h:614
grk_plugin_encode_user_callback_info::error_code
unsigned int error_code
Definition: grok.h:1821
_grk_plugin_band::orient
size_t orient
Definition: grok.h:1209
_grk_poc::prcE
uint64_t prcE
Definition: grok.h:389
_grk_image_comp::type
GRK_COMPONENT_TYPE type
Definition: grok.h:873
grk_end_decompress
GRK_API bool GRK_CALLCONV grk_end_decompress(grk_codec codec)
End decompression.
_grk_image_comp::prec
uint32_t prec
precision
Definition: grok.h:867
_grk_tile_info::end_header
uint64_t end_header
end position of the header
Definition: grok.h:979
_grk_tile_index
Tile index info.
Definition: grok.h:1127
grk_plugin_batch_decompress
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress(void)
Batch decompress.
grk_plugin_pass
struct _grk_plugin_pass grk_plugin_pass
Plugin pass.
GRK_PROG_ORDER
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
_grk_tile_index::current_nb_tps
uint32_t current_nb_tps
current nb of tile part (allocated)
Definition: grok.h:1133
_grk_plugin_pass::length
size_t length
Definition: grok.h:1176
_grk_jp2_pclr::nr_channels
uint8_t nr_channels
Definition: grok.h:586
grk_destroy_codec
GRK_API void GRK_CALLCONV grk_destroy_codec(grk_codec codec)
Destroy codec.
_grk_plugin_init_info::deviceId
int32_t deviceId
Definition: grok.h:1803
grk_codestream_info
struct _grk_codestream_info grk_codestream_info
Code stream info.
_grk_header_info::t_grid_width
uint32_t t_grid_width
tile grid width
Definition: grok.h:638
GRK_CLRSPC_UNKNOWN
@ GRK_CLRSPC_UNKNOWN
unknown
Definition: grok.h:317
_grk_cparameters::numpocs
uint32_t numpocs
number of progression order changes (POCs), default to 0
Definition: grok.h:455
_grk_cparameters::cp_num_comments
size_t cp_num_comments
Definition: grok.h:447
grk_codestream_info_v2
struct _grk_codestream_info_v2 grk_codestream_info_v2
Code stream info v2.
_grk_plugin_decode_callback_info::init_decoders_func
GROK_INIT_DECODERS init_decoders_func
Definition: grok.h:1871
_grk_plugin_decode_callback_info::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
Definition: grok.h:1875
grk_stream_read_fn
size_t(* grk_stream_read_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:791
grk_plugin_load
GRK_API bool GRK_CALLCONV grk_plugin_load(grk_plugin_load_info info)
Load plugin.
GRK_JP2_FMT
@ GRK_JP2_FMT
Definition: grok.h:62
_grk_tile_index::tileno
uint16_t tileno
tile index
Definition: grok.h:1129
_grk_decompress_params::upsample
bool upsample
Definition: grok.h:762
grk_plugin_tile_component::resolutions
grk_plugin_resolution ** resolutions
Definition: grok.h:1229
_grk_codestream_info_v2::t_grid_height
uint32_t t_grid_height
number of tiles in Y
Definition: grok.h:1105
grk_stream_set_write_function
GRK_API void GRK_CALLCONV grk_stream_set_write_function(grk_stream *stream, grk_stream_write_fn p_function)
Set the given function to be used as a write function.
_grk_poc::layE
uint32_t layE
End value, initialized in pi_initialise_encode.
Definition: grok.h:388
grk_create_compress
GRK_API grk_codec GRK_CALLCONV grk_create_compress(GRK_CODEC_FORMAT format, grk_stream *stream)
Creates a J2K/JP2 compression structure.
_grk_jp2_cmap_comp
Component mappings: channel index, mapping type, palette index.
Definition: grok.h:572
_grk_codestream_info::main_head_start
uint64_t main_head_start
main header position
Definition: grok.h:1027
_grk_jp2_cdef::n
uint16_t n
Definition: grok.h:566
_grk_cparameters::ty0
uint32_t ty0
YTOsiz.
Definition: grok.h:434
grk_prec_mode
grk_prec_mode
Precision mode.
Definition: grok.h:713
GRK_API
#define GRK_API
Definition: grok.h:47
_grk_decompress_params::compressionLevel
uint32_t compressionLevel
Definition: grok.h:770
GRK_BMP_FMT
@ GRK_BMP_FMT
Definition: grok.h:66
_grk_packet_info::end_pos
uint64_t end_pos
packet end position
Definition: grok.h:950
_grk_poc::layno0
uint32_t layno0
Layer num start,precinct num start, precinct num end.
Definition: grok.h:375
_grk_image_comp
Image component.
Definition: grok.h:851
_grk_decompress_params::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:736
grk_plugin_stop_batch_compress
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress(void)
Stop batch compress.
_grk_header_info::comment
char * comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:654
grk_jp2_cmap_comp
struct _grk_jp2_cmap_comp grk_jp2_cmap_comp
Component mappings: channel index, mapping type, palette index.
_grk_image_comptparm::dx
uint32_t dx
XRsiz: horizontal separation of a sample of component with respect to the reference grid.
Definition: grok.h:915
_grk_poc::tyS
uint32_t tyS
Definition: grok.h:391
_grk_image_comp::dy
uint32_t dy
YRsiz: vertical separation of a sample of with component with respect to the reference grid.
Definition: grok.h:855
_grk_image::iptc_buf
uint8_t * iptc_buf
Definition: grok.h:903
_grk_header_info::capture_resolution
double capture_resolution[2]
Definition: grok.h:659
_grk_poc::ty0_t
uint32_t ty0_t
Definition: grok.h:393
grk_set_decompress_area
GRK_API bool GRK_CALLCONV grk_set_decompress_area(grk_codec codec, grk_image *image, uint32_t start_x, uint32_t start_y, uint32_t end_x, uint32_t end_y)
Set the given area to be decompressed.
_grk_tile_index::marknum
uint32_t marknum
number of markers
Definition: grok.h:1139
_grk_prec::prec
uint32_t prec
Definition: grok.h:721
_grk_dparameters
Core decompress parameters.
Definition: grok.h:669
_grk_poc::prc_t
uint64_t prc_t
Definition: grok.h:394
_grk_poc::resS
uint32_t resS
Start value, initialized in pi_initialise_encode.
Definition: grok.h:386
grk_deinitialize
GRK_API void GRK_CALLCONV grk_deinitialize()
Deinitialize Grok library.
GRK_CODEC_UNKNOWN
@ GRK_CODEC_UNKNOWN
place-holder
Definition: grok.h:343
_grk_cparameters::tx0
uint32_t tx0
XTOsiz.
Definition: grok.h:432
grk_jp2_cdef
struct _grk_jp2_cdef grk_jp2_cdef
Channel descriptions and number of descriptions.
GRK_COMPONENT_TYPE_UNSPECIFIED
@ GRK_COMPONENT_TYPE_UNSPECIFIED
Definition: grok.h:833
_grk_plugin_code_block::compressedDataLength
uint32_t compressedDataLength
Definition: grok.h:1190
GRK_PLUGIN_ENCODE_USER_CALLBACK
bool(* GRK_PLUGIN_ENCODE_USER_CALLBACK)(grk_plugin_encode_user_callback_info *info)
Definition: grok.h:1824
grk_plugin_encode_user_callback_info::tile
grk_plugin_tile * tile
Definition: grok.h:1818
_grk_decompress_params::nb_precision
uint32_t nb_precision
Definition: grok.h:758
_grk_packet_info::disto
double disto
packet distortion
Definition: grok.h:952
grk_tccp_info
struct _grk_tccp_info grk_tccp_info
Component coding parameters info.
_grk_plugin_decode_callback_info::decode_flags
uint32_t decode_flags
Definition: grok.h:1886
GRK_RPCL
@ GRK_RPCL
resolution-precinct-component-layer order
Definition: grok.h:292
_grk_cparameters::framerate
int framerate
Definition: grok.h:528
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_decode_callback callback)
Initialize batch decompress.
_grk_plugin_decode_callback_info
Definition: grok.h:1869
_grk_codestream_info_v2
Code stream info v2.
Definition: grok.h:1092
_grk_plugin_decode_callback_info::l_codec
grk_codec l_codec
Definition: grok.h:1879
grk_buffer_delete
GRK_API void GRK_CALLCONV grk_buffer_delete(uint8_t *buffer)
Release memory for meta data.
_grk_cparameters::rsiz
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition: grok.h:527
_grk_plugin_decode_callback_info::error_code
unsigned int error_code
Definition: grok.h:1885
_grk_raw_cparameters::sgnd
bool sgnd
signed/unsigned raw image
Definition: grok.h:419
grk_plugin_tile_component
struct grk_plugin_tile_component grk_plugin_tile_component
Plugin tile component.
_grk_cparameters::deviceId
int32_t deviceId
Definition: grok.h:543
GRK_SUPPORTED_FILE_FMT
GRK_SUPPORTED_FILE_FMT
Definition: grok.h:59
_grk_cparameters::verbose
bool verbose
Definition: grok.h:549
_grk_tile_index::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1143
_grk_image_comptparm::y0
uint32_t y0
y component offset compared to the whole image
Definition: grok.h:928
grk_plugin_decode_callback_info
struct _grk_plugin_decode_callback_info grk_plugin_decode_callback_info
_GRK_CODEC_FORMAT
_GRK_CODEC_FORMAT
Supported codecs.
Definition: grok.h:342
_grk_cparameters::tcp_numlayers
uint32_t tcp_numlayers
number of layers
Definition: grok.h:457
_grk_image_comp::sgnd
bool sgnd
Definition: grok.h:868
_grk_jp2_color::jp2_pclr
grk_jp2_pclr * jp2_pclr
Definition: grok.h:596
_grk_codestream_index::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1161
_grk_poc::comp_t
uint32_t comp_t
Definition: grok.h:393
grk_plugin_encode_user_callback_info
Definition: grok.h:1812
_grk_codestream_info::numdecompos
uint32_t * numdecompos
number of decomposition for each component
Definition: grok.h:1019
_grk_plugin_code_block::y1
uint32_t y1
Definition: grok.h:1185
grk_plugin_band
struct _grk_plugin_band grk_plugin_band
Plugin band.
grk_plugin_encode_user_callback_info::outputFileNameIsRelative
bool outputFileNameIsRelative
Definition: grok.h:1814
grk_tp_index
struct _grk_tp_index grk_tp_index
Tile part index info.
_grk_codestream_index::nb_of_tiles
uint32_t nb_of_tiles
Definition: grok.h:1162
_grk_cparameters::cp_disto_alloc
bool cp_disto_alloc
allocation by rate/distortion
Definition: grok.h:440
_grk_codestream_info::D_max
double D_max
maximum distortion reduction on the whole image (add for Marcela)
Definition: grok.h:1009
_grk_tccp_info::cblkw
uint32_t cblkw
code-blocks width
Definition: grok.h:1047
_grk_header_info::xml_data_len
size_t xml_data_len
Definition: grok.h:652
_grk_image::y0
uint32_t y0
YOsiz: vertical offset from the origin of the reference grid to the top side of the image area.
Definition: grok.h:886
_grk_tile_info::ph
uint32_t ph[GRK_J2K_MAXRLVLS]
precinct number for each resolution level (height)
Definition: grok.h:985
_grk_tccp_info
Component coding parameters info.
Definition: grok.h:1039
GRK_ENUM_CLRSPC_GRAY
@ GRK_ENUM_CLRSPC_GRAY
Definition: grok.h:334
GRK_NUM_COMMENTS_SUPPORTED
#define GRK_NUM_COMMENTS_SUPPORTED
Definition: grok.h:348
_grk_prec
Precision.
Definition: grok.h:720
_grk_cparameters::tp_flag
uint8_t tp_flag
Flag for tile part generation.
Definition: grok.h:512
_grk_poc::tx1
uint32_t tx1
Definition: grok.h:384
GRK_PCRL
@ GRK_PCRL
precinct-component-resolution-layer order
Definition: grok.h:293
_grk_header_info::ty0
uint32_t ty0
YTOsiz.
Definition: grok.h:632
GRK_CLRSPC_DEFAULT_CIE
@ GRK_CLRSPC_DEFAULT_CIE
default CIE LAB
Definition: grok.h:323
_grk_codestream_info::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1025
GRK_RAWL_FMT
@ GRK_RAWL_FMT
Definition: grok.h:70
grk_plugin_encode_user_callback_info::output_file_name
const char * output_file_name
Definition: grok.h:1815
grk_stream_zero_copy_read_fn
size_t(* grk_stream_zero_copy_read_fn)(void **p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:797
_grk_cparameters::mct_data
void * mct_data
Naive implementation of MCT restricted to a single reversible array based encoding without offset con...
Definition: grok.h:517
_grk_plugin_band
Plugin band.
Definition: grok.h:1208
_grk_plugin_code_block::x1
uint32_t x1
Definition: grok.h:1185
grk_stream_free_user_data_fn
void(* grk_stream_free_user_data_fn)(void *user_data)
Definition: grok.h:814
GRK_JPG_FMT
@ GRK_JPG_FMT
Definition: grok.h:71
_grk_header_info::isBinaryComment
bool isBinaryComment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:656
grk_plugin_decompress
GRK_API int32_t GRK_CALLCONV grk_plugin_decompress(grk_decompress_parameters *decompress_parameters, grk_plugin_decode_callback callback)
Decompress with plugin.
_grk_cparameters::repeats
uint32_t repeats
Definition: grok.h:546
_grk_tile_info::pdy
uint32_t pdy[GRK_J2K_MAXRLVLS]
precinct size (in power of 2), in Y for each resolution level
Definition: grok.h:989
_grk_plugin_code_block::compressedData
uint8_t * compressedData
Definition: grok.h:1189
_grk_codestream_info_v2::m_default_tile_info
grk_tile_info_v2 m_default_tile_info
Default information regarding tiles inside image.
Definition: grok.h:1109
_grk_cparameters::image_offset_x0
uint32_t image_offset_x0
subimage encoding: origin image offset in x direction
Definition: grok.h:492
GRK_RAW_FMT
@ GRK_RAW_FMT
Definition: grok.h:68
grk_image_cmptparm
struct _grk_image_comptparm grk_image_cmptparm
Image component parameters.
_grk_tccp_info::numresolutions
uint32_t numresolutions
number of resolutions
Definition: grok.h:1045
grk_jp2_cdef_info
struct _grk_jp2_cdef_info grk_jp2_cdef_info
Channel description: channel index, type, association.
grk_version
GRK_API const char *GRK_CALLCONV grk_version(void)
Grok version.
GRK_ENUM_CLRSPC_UNKNOWN
@ GRK_ENUM_CLRSPC_UNKNOWN
Definition: grok.h:330
grk_set_MCT
GRK_API bool GRK_CALLCONV grk_set_MCT(grk_cparameters *parameters, float *pEncodingMatrix, int32_t *p_dc_shift, uint32_t pNbComp)
Set the MCT matrix to use.
_grk_jp2_pclr::cmap
grk_jp2_cmap_comp * cmap
Definition: grok.h:584
_grk_plugin_code_block::numPasses
size_t numPasses
Definition: grok.h:1192
_grk_plugin_tile::tileComponents
grk_plugin_tile_component ** tileComponents
Definition: grok.h:1245
_grk_raw_cparameters::numcomps
uint16_t numcomps
number of components of the raw image
Definition: grok.h:415
_grk_image_comp::h
uint32_t h
data height
Definition: grok.h:861
_grk_poc::compE
uint32_t compE
Definition: grok.h:388
_grk_cparameters::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:500
_grk_cparameters::cp_is_binary_comment
bool cp_is_binary_comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:446
_grk_tile_info::pdx
uint32_t pdx[GRK_J2K_MAXRLVLS]
precinct size (in power of 2), in X for each resolution level
Definition: grok.h:987
grk_image_single_component_data_free
GRK_API void GRK_CALLCONV grk_image_single_component_data_free(grk_image_comp *image)
Deallocate data for single image component.
GRK_CLRSPC_EYCC
@ GRK_CLRSPC_EYCC
extended YCC
Definition: grok.h:321
grk_image
struct _grk_image grk_image
Image.
_grk_header_info
Header info.
Definition: grok.h:603
_grk_plugin_init_info::verbose
bool verbose
Definition: grok.h:1804
_grk_decompress_params::nb_tile_to_decode
uint32_t nb_tile_to_decode
Number of tiles to decompress.
Definition: grok.h:756
_grk_cparameters::subsampling_dy
uint32_t subsampling_dy
subsampling value for dy
Definition: grok.h:498
_grk_cparameters::irreversible
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:475
_grk_tile_info::tileno
uint16_t tileno
number of tile
Definition: grok.h:975
_grk_poc::lay_t
uint32_t lay_t
Temporary values for Tile parts, initialized in pi_create_encode.
Definition: grok.h:393
_grk_image_comp::data
int32_t * data
image component data
Definition: grok.h:870
_grk_header_info::t_grid_height
uint32_t t_grid_height
tile grid height
Definition: grok.h:640
_grk_jp2_cdef_info::cn
uint16_t cn
Definition: grok.h:556
_grk_image_comptparm::stride
uint32_t stride
Definition: grok.h:922
grk_end_compress
GRK_API bool GRK_CALLCONV grk_end_compress(grk_codec codec)
End to compress the current image.
grk_tile_info
struct _grk_tile_info grk_tile_info
Tile info.
grk_init_decompress
GRK_API bool GRK_CALLCONV grk_init_decompress(grk_codec codec, grk_dparameters *parameters)
Set up the decompressor with decompress parameters.
_grk_image::iptc_len
size_t iptc_len
Definition: grok.h:904
_grk_poc::precno0
uint64_t precno0
Definition: grok.h:376
_grk_poc::prg1
GRK_PROG_ORDER prg1
Progression order enum.
Definition: grok.h:378
grk_stream_seek_fn
bool(* grk_stream_seek_fn)(uint64_t nb_bytes, void *user_data)
Definition: grok.h:809
_grk_cparameters::tcp_distoratio
double tcp_distoratio[100]
different psnr for successive layers
Definition: grok.h:462
_grk_decompress_params::numThreads
uint32_t numThreads
Definition: grok.h:776
_grk_raw_comp_cparameters::dx
uint32_t dx
subsampling in X direction
Definition: grok.h:401
_grk_marker_info::pos
uint64_t pos
position in code stream
Definition: grok.h:962
_grk_dparameters::flags
uint32_t flags
Definition: grok.h:707
_grk_plugin_decode_callback_info::input_file_name
const char * input_file_name
Definition: grok.h:1872
_grk_cparameters::writeTLM
bool writeTLM
Definition: grok.h:548
_grk_header_info::irreversible
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:609
_grk_jp2_pclr::channel_sign
uint8_t * channel_sign
Definition: grok.h:582
grk_plugin_init
GRK_API bool GRK_CALLCONV grk_plugin_init(grk_plugin_init_info initInfo)
Initialize plugin.
grk_read_header
GRK_API bool GRK_CALLCONV grk_read_header(grk_codec codec, grk_header_info *header_info, grk_image **image)
Decode JPEG 2000 header.
_grk_decompress_params::duration
uint32_t duration
Definition: grok.h:772
_grk_tile_v2_info::numlayers
uint32_t numlayers
number of layers
Definition: grok.h:1081
_grk_tile_info::packet
grk_packet_info * packet
information concerning packets inside tile
Definition: grok.h:991
grk_plugin_encode_user_callback_info::input_file_name
const char * input_file_name
Definition: grok.h:1813
_grk_header_info::display_resolution
double display_resolution[2]
Definition: grok.h:662
_grk_image::icc_profile_buf
uint8_t * icc_profile_buf
'restricted' ICC profile
Definition: grok.h:898
grk_image_comp
struct _grk_image_comp grk_image_comp
Image component.
grk_raw_cparameters
struct _grk_raw_cparameters grk_raw_cparameters
grk_poc
struct _grk_poc grk_poc
Progression order changes.
_grk_image::xmp_len
size_t xmp_len
Definition: grok.h:906
_grk_jp2_cmap_comp::mtyp
uint8_t mtyp
Definition: grok.h:574
_grk_poc::ty1
uint32_t ty1
Definition: grok.h:384
_grk_codestream_info::packno
uint32_t packno
packet number
Definition: grok.h:1011
_grk_jp2_cdef::info
grk_jp2_cdef_info * info
Definition: grok.h:565
_grk_image_comp::x0
uint32_t x0
x component offset compared to the whole image
Definition: grok.h:863
_grk_cparameters::tcp_mct
uint8_t tcp_mct
MCT (multiple component transform)
Definition: grok.h:514
_grk_tccp_info::csty
uint8_t csty
coding style
Definition: grok.h:1043
_grk_raw_cparameters::comps
grk_raw_comp_cparameters * comps
raw components parameters
Definition: grok.h:421
_grk_raw_cparameters::width
uint32_t width
width of the raw image
Definition: grok.h:411
_grk_marker_info
Marker info.
Definition: grok.h:958
_grk_dparameters::DA_x1
uint32_t DA_x1
Decoding area right boundary.
Definition: grok.h:696
grk_stream_set_user_data
GRK_API void GRK_CALLCONV grk_stream_set_user_data(grk_stream *stream, void *data, grk_stream_free_user_data_fn p_function)
Set the given data to be used as a user data for the stream.
_grk_header_info::cblockw_init
uint32_t cblockw_init
initial code block width, default to 64
Definition: grok.h:605
_grk_plugin_precinct::numBlocks
uint64_t numBlocks
Definition: grok.h:1201
_grk_image::color_space
GRK_COLOR_SPACE color_space
color space: sRGB, Greyscale or YUV
Definition: grok.h:894
_grk_jp2_cdef
Channel descriptions and number of descriptions.
Definition: grok.h:564
_grk_decompress_params::DA_y0
uint32_t DA_y0
Decoding area up boundary.
Definition: grok.h:748
GRK_PREC_MODE_CLIP
@ GRK_PREC_MODE_CLIP
Definition: grok.h:714
_grk_cparameters::POC
grk_poc POC[32]
progression order changes
Definition: grok.h:453
grk_set_info_handler
GRK_API bool GRK_CALLCONV grk_set_info_handler(grk_msg_callback p_callback, void *user_data)
Set info handler.
_grk_decompress_params::DA_x0
uint32_t DA_x0
Decoding area left boundary.
Definition: grok.h:744
grk_tile_info_v2
struct _grk_tile_v2_info grk_tile_info_v2
Tile coding parameter info.
grk_init_compress
GRK_API bool GRK_CALLCONV grk_init_compress(grk_codec codec, grk_cparameters *parameters, grk_image *image)
Setup the encoder parameters using the current image and user parameters.
_grk_tccp_info::prcw
uint32_t prcw[GRK_J2K_MAXRLVLS]
precinct width
Definition: grok.h:1065
grk_decompress
GRK_API bool GRK_CALLCONV grk_decompress(grk_codec p_decompressor, grk_plugin_tile *tile, grk_image *image)
Decompress image from a JPEG 2000 code stream.
_grk_tile_v2_info
Tile coding parameter info.
Definition: grok.h:1073
GRK_CPRL
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:294
GRK_COMPONENT_ASSOC_UNASSOCIATED
@ GRK_COMPONENT_ASSOC_UNASSOCIATED
Definition: grok.h:844
_grk_poc::ty0
uint32_t ty0
Definition: grok.h:384
_grk_tile_info::num_tps
uint32_t num_tps
number of tile parts
Definition: grok.h:1001
_grk_cparameters::max_cs_size
uint64_t max_cs_size
Maximum size (in bytes) for the whole code stream.
Definition: grok.h:524
_grk_packet_info
Packet info.
Definition: grok.h:944
_grk_poc::tyE
uint32_t tyE
Definition: grok.h:391
_grk_codestream_info::codestream_size
uint64_t codestream_size
code stream's size
Definition: grok.h:1031
grk_stream_write_fn
size_t(* grk_stream_write_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:803
_grk_cparameters::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:490
_grk_cparameters::cblockw_init
uint32_t cblockw_init
initial code block width (default to 64)
Definition: grok.h:466
_grk_plugin_load_info::plugin_path
const char * plugin_path
Definition: grok.h:1758
_grk_poc::txE
uint32_t txE
Definition: grok.h:391
grk_cparameters
struct _grk_cparameters grk_cparameters
Compress parameters.
grk_stream
void * grk_stream
Definition: grok.h:819
grk_dparameters
struct _grk_dparameters grk_dparameters
Core decompress parameters.
_grk_plugin_resolution::numBands
size_t numBands
Definition: grok.h:1220
grk_header_info
struct _grk_header_info grk_header_info
Header info.
_grk_cparameters::cp_fixed_quality
bool cp_fixed_quality
allocation by fixed_quality
Definition: grok.h:442
grk_stream_destroy
GRK_API void GRK_CALLCONV grk_stream_destroy(grk_stream *stream)
Destroy a stream created by grk_create_stream.
_grk_codestream_info_v2::t_height
uint32_t t_height
tile size in y = YTsiz
Definition: grok.h:1101
_grk_image_comptparm::x0
uint32_t x0
x component offset compared to the whole image
Definition: grok.h:926
grk_compress_tile
GRK_API bool GRK_CALLCONV grk_compress_tile(grk_codec codec, uint16_t tile_index, uint8_t *data, uint64_t data_size)
Compress uncompressed data stored in a buffer.
_GRK_COLOR_SPACE
_GRK_COLOR_SPACE
Supported image color spaces.
Definition: grok.h:316
_grk_cparameters::infile
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:488
_grk_image_comp::dx
uint32_t dx
XRsiz: horizontal separation of a sample of with component with respect to the reference grid.
Definition: grok.h:853
_grk_plugin_band::stepsize
float stepsize
Definition: grok.h:1212
GRK_PNG_FMT
@ GRK_PNG_FMT
Definition: grok.h:69
_grk_poc::compno1
uint32_t compno1
Definition: grok.h:373
_grk_poc::resno1
uint32_t resno1
Definition: grok.h:373
_grk_plugin_tile::decode_flags
uint32_t decode_flags
Definition: grok.h:1243
_grk_tile_info::distotile
double distotile
Definition: grok.h:993
grk_plugin_encode_user_callback_info::compressBufferLen
size_t compressBufferLen
Definition: grok.h:1820
_grk_tile_v2_info::prg
GRK_PROG_ORDER prg
progression order
Definition: grok.h:1079
GRK_PGX_FMT
@ GRK_PGX_FMT
Definition: grok.h:64
_grk_codestream_info::index_write
uint32_t index_write
writing the packet in the index with t2_encode_packets
Definition: grok.h:1013
_grk_decompress_params::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format 0: J2K, 1: JP2
Definition: grok.h:738
grk_decompress_parameters
struct _grk_decompress_params grk_decompress_parameters
Decompress parameters.
_grk_codestream_info_v2::tx0
uint32_t tx0
tile origin in x = XTOsiz
Definition: grok.h:1095
_grk_image::x1
uint32_t x1
Xsiz: width of the reference grid.
Definition: grok.h:888
GRK_CLRSPC_ICC
@ GRK_CLRSPC_ICC
ICC profile.
Definition: grok.h:325
_grk_header_info::tcp_numlayers
uint32_t tcp_numlayers
number of layers
Definition: grok.h:642
grk_stream_set_seek_function
GRK_API void GRK_CALLCONV grk_stream_set_seek_function(grk_stream *stream, grk_stream_seek_fn p_function)
Set the given function to be used as a seek function, the stream is then seekable.
_grk_jp2_pclr::nr_entries
uint16_t nr_entries
Definition: grok.h:585
GRK_COMPONENT_ASSOC_COLOUR_2
@ GRK_COMPONENT_ASSOC_COLOUR_2
Definition: grok.h:842
_grk_dparameters::tile_index
uint16_t tile_index
tile number of the decompressed tile
Definition: grok.h:704
_grk_cparameters::cp_comment_len
uint16_t cp_comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:445
_grk_poc::tile
uint32_t tile
Tile number.
Definition: grok.h:382
_grk_jp2_color::icc_profile_buf
uint8_t * icc_profile_buf
Definition: grok.h:593
_grk_poc::precno1
uint64_t precno1
Definition: grok.h:376
_grk_tccp_info::cblk_sty
uint8_t cblk_sty
code block mode
Definition: grok.h:1051
grk_stream_set_zero_copy_read_function
GRK_API void GRK_CALLCONV grk_stream_set_zero_copy_read_function(grk_stream *stream, grk_stream_zero_copy_read_fn p_function)
Set the given function to be used as a zero copy read function.
_grk_jp2_color
ICC profile, palette, component mapping, channel description.
Definition: grok.h:592
grk_plugin_init_info
struct _grk_plugin_init_info grk_plugin_init_info
_grk_cparameters::max_comp_size
uint32_t max_comp_size
Maximum size (in bytes) for each component.
Definition: grok.h:508
_grk_dparameters::DA_y1
uint32_t DA_y1
Decoding area bottom boundary.
Definition: grok.h:700
_grk_tile_info::thresh
double * thresh
value of thresh for each layer by tile cfr.
Definition: grok.h:973
grk_image_create
GRK_API grk_image *GRK_CALLCONV grk_image_create(uint32_t numcmpts, grk_image_cmptparm *cmptparms, GRK_COLOR_SPACE clrspc, bool allocData)
Create image.
_grk_image_comptparm
Image component parameters.
Definition: grok.h:912
grk_stream_create_file_stream
GRK_API grk_stream *GRK_CALLCONV grk_stream_create_file_stream(const char *fname, size_t buffer_size, bool is_read_stream)
Create stream from a file identified with its filename with a specific buffer size.
grk_image_all_components_data_free
GRK_API void GRK_CALLCONV grk_image_all_components_data_free(grk_image *image)
Deallocate all component data for an image.
_grk_dparameters::DA_y0
uint32_t DA_y0
Decoding area up boundary.
Definition: grok.h:698
grk_plugin_tile_component::numResolutions
size_t numResolutions
Definition: grok.h:1228
_grk_plugin_pass::distortionDecrease
double distortionDecrease
Definition: grok.h:1174
_grk_tile_info::numpix
int64_t numpix
Definition: grok.h:992
_grk_cparameters::numresolution
uint32_t numresolution
number of resolutions
Definition: grok.h:464
_grk_dparameters::infile
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:686
_grk_plugin_init_info
Definition: grok.h:1802
_grk_tile_info::marker
grk_marker_info * marker
list of markers
Definition: grok.h:997
_grk_codestream_info::numlayers
uint32_t numlayers
number of layer
Definition: grok.h:1017
_grk_image_comptparm::prec
uint32_t prec
precision
Definition: grok.h:930
_grk_cparameters::isHT
bool isHT
Definition: grok.h:472
_grk_cparameters::raw_cp
grk_raw_cparameters raw_cp
Definition: grok.h:503
_grk_cparameters::csty
uint8_t csty
csty : coding style
Definition: grok.h:449
_grk_poc::compS
uint32_t compS
Definition: grok.h:386
grk_set_warning_handler
GRK_API bool GRK_CALLCONV grk_set_warning_handler(grk_msg_callback p_callback, void *user_data)
Set warning handler.
_grk_tile_v2_info::csty
uint32_t csty
coding style
Definition: grok.h:1077
grk_raw_comp_cparameters
struct _grk_raw_comp_cparameters grk_raw_comp_cparameters
GRK_J2K_MAXRLVLS
#define GRK_J2K_MAXRLVLS
Maximum number of resolution levels authorized.
Definition: grok.h:81
_grk_image
Image.
Definition: grok.h:880
_grk_header_info::tx0
uint32_t tx0
XTOsiz.
Definition: grok.h:630
_grk_cparameters::t_height
uint32_t t_height
YTsiz.
Definition: grok.h:438
_grk_tccp_info::qntsty
uint8_t qntsty
quantisation style
Definition: grok.h:1055
_grk_tile_index::tp_index
grk_tp_index * tp_index
information concerning tile parts
Definition: grok.h:1137
_grk_cparameters::cp_comment
char * cp_comment[GRK_NUM_COMMENTS_SUPPORTED]
comment for coding
Definition: grok.h:444
_grk_cparameters::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:502
_grk_cparameters
Compress parameters.
Definition: grok.h:428
grk_marker_info
struct _grk_marker_info grk_marker_info
Marker info.
_grk_plugin_resolution::level
size_t level
Definition: grok.h:1219
_grk_plugin_band::precincts
grk_plugin_precinct ** precincts
Definition: grok.h:1211
grk_stream_set_user_data_length
GRK_API void GRK_CALLCONV grk_stream_set_user_data_length(grk_stream *stream, uint64_t data_length)
Set the length of the user data for the stream.
_grk_plugin_code_block::sortedIndex
unsigned int sortedIndex
Definition: grok.h:1194
GRK_ENUM_CLRSPC_EYCC
@ GRK_ENUM_CLRSPC_EYCC
Definition: grok.h:336
_grk_poc::res_t
uint32_t res_t
Definition: grok.h:393
GRK_COMPONENT_TYPE_OPACITY
@ GRK_COMPONENT_TYPE_OPACITY
Definition: grok.h:831
_grk_tp_index::end_header
uint64_t end_header
end position of the header
Definition: grok.h:1119
_grk_dparameters::DA_x0
uint32_t DA_x0
Decoding area left boundary.
Definition: grok.h:694
grk_initialize
GRK_API bool GRK_CALLCONV grk_initialize(const char *plugin_path, uint32_t numthreads)
Initialize Grok library.
_grk_plugin_tile::numComponents
size_t numComponents
Definition: grok.h:1244
_grk_codestream_info_v2::t_grid_width
uint32_t t_grid_width
number of tiles in X
Definition: grok.h:1103
grk_plugin_code_block
struct _grk_plugin_code_block grk_plugin_code_block
Plugin code block.
_grk_tp_index::start_pos
uint64_t start_pos
start position
Definition: grok.h:1117
_grk_tccp_info::qmfbid
uint8_t qmfbid
discrete wavelet transform identifier
Definition: grok.h:1053
_grk_jp2_cdef_info
Channel description: channel index, type, association.
Definition: grok.h:555
_grk_image::y1
uint32_t y1
Ysiz: height of the reference grid.
Definition: grok.h:890
_grk_plugin_resolution::bands
grk_plugin_band ** bands
Definition: grok.h:1221
GRK_COMPONENT_ASSOC
GRK_COMPONENT_ASSOC
Definition: grok.h:838
grk_stream_get_write_mem_stream_length
GRK_API size_t GRK_CALLCONV grk_stream_get_write_mem_stream_length(grk_stream *stream)
Get length of memory stream.
_grk_image_comp::y0
uint32_t y0
y component offset compared to the whole image
Definition: grok.h:865
_grk_decompress_params::precision
grk_precision * precision
Definition: grok.h:757
grk_plugin_load_info
struct _grk_plugin_load_info grk_plugin_load_info
_grk_cparameters::cblk_sty
uint8_t cblk_sty
code block style
Definition: grok.h:470
_grk_decompress_params::indexfilename
char indexfilename[GRK_PATH_LEN]
index file name
Definition: grok.h:742
_grk_plugin_resolution
Plugin resolution.
Definition: grok.h:1218
_grk_plugin_decode_callback_info::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
Definition: grok.h:1877
GRK_RLCP
@ GRK_RLCP
resolution-layer-component-precinct order
Definition: grok.h:291
_grk_cparameters::numThreads
uint32_t numThreads
Definition: grok.h:542
_grk_cparameters::write_display_resolution
bool write_display_resolution
Definition: grok.h:537
_grk_poc::dy
uint32_t dy
Definition: grok.h:391
_grk_image_comp::owns_data
bool owns_data
Definition: grok.h:872
grk_plugin_resolution
struct _grk_plugin_resolution grk_plugin_resolution
Plugin resolution.
GRK_ENUM_COLOUR_SPACE
GRK_ENUM_COLOUR_SPACE
Definition: grok.h:329
_grk_dparameters::cp_layer
uint32_t cp_layer
Set the maximum number of quality layers to decompress.
Definition: grok.h:684
_grk_dparameters::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:692
_grk_dparameters::m_verbose
bool m_verbose
Verbose mode.
Definition: grok.h:702
_grk_jp2_pclr::channel_size
uint8_t * channel_size
Definition: grok.h:583
grk_set_default_compress_params
GRK_API void GRK_CALLCONV grk_set_default_compress_params(grk_cparameters *parameters)
Set encoding parameters to default values, that means :
_grk_cparameters::image_offset_y0
uint32_t image_offset_y0
subimage encoding: origin image offset in y direction
Definition: grok.h:494
GRK_PAM_FMT
@ GRK_PAM_FMT
Definition: grok.h:65
_grk_codestream_index::tile_index
grk_tile_index * tile_index
Definition: grok.h:1163
_grk_tccp_info::stepsizes_mant
uint32_t stepsizes_mant[GRK_J2K_MAXBANDS]
stepsizes used for quantization
Definition: grok.h:1057
_grk_codestream_info::main_head_end
uint64_t main_head_end
main header position
Definition: grok.h:1029
_grk_poc::tx0
uint32_t tx0
Start and end values for tile width and height.
Definition: grok.h:384
grk_plugin_is_batch_complete
GRK_API bool GRK_CALLCONV grk_plugin_is_batch_complete(void)
Check if batch job is complete.
_grk_image::x0
uint32_t x0
XOsiz: horizontal offset from the origin of the reference grid to the left side of the image area.
Definition: grok.h:883