Grok  7.6.3
grok.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2021 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_MAX_DECOMP_LVLS 32
82 #define GRK_J2K_MAXRLVLS (GRK_J2K_MAX_DECOMP_LVLS+1)
83 #define GRK_J2K_MAXBANDS (3*GRK_J2K_MAXRLVLS-2)
85 // used by dump
86 #define GRK_IMG_INFO 1
87 #define GRK_J2K_MH_INFO 2
88 #define GRK_J2K_TH_INFO 4
89 #define GRK_J2K_TCH_INFO 8
90 #define GRK_J2K_MH_IND 16
91 #define GRK_J2K_TH_IND 32
92 #define GRK_JP2_INFO 128
93 #define GRK_JP2_IND 256
95 #define GRK_CBLKSTY_LAZY 0x01
96 #define GRK_CBLKSTY_RESET 0x02
97 #define GRK_CBLKSTY_TERMALL 0x04
98 #define GRK_CBLKSTY_VSC 0x08
99 #define GRK_CBLKSTY_PTERM 0x10
100 #define GRK_CBLKSTY_SEGSYM 0x20
101 #define GRK_CBLKSTY_HT 0x40
102 #define GRK_JPH_RSIZ_FLAG 0x4000
123 #define GRK_PROFILE_NONE 0x0000
124 #define GRK_PROFILE_0 0x0001
125 #define GRK_PROFILE_1 0x0002
126 #define GRK_PROFILE_CINEMA_2K 0x0003
127 #define GRK_PROFILE_CINEMA_4K 0x0004
128 #define GRK_PROFILE_CINEMA_S2K 0x0005
129 #define GRK_PROFILE_CINEMA_S4K 0x0006
130 #define GRK_PROFILE_CINEMA_LTS 0x0007
131 #define GRK_PROFILE_BC_SINGLE 0x0100
132 #define GRK_PROFILE_BC_MULTI 0x0200
133 #define GRK_PROFILE_BC_MULTI_R 0x0300
134 #define GRK_PROFILE_BC_MASK 0x030F
135 #define GRK_PROFILE_IMF_2K 0x0400
136 #define GRK_PROFILE_IMF_4K 0x0500
137 #define GRK_PROFILE_IMF_8K 0x0600
138 #define GRK_PROFILE_IMF_2K_R 0x0700
139 #define GRK_PROFILE_IMF_4K_R 0x0800
140 #define GRK_PROFILE_IMF_8K_R 0x0900
141 #define GRK_PROFILE_MASK 0x0FFF
142 #define GRK_PROFILE_PART2 0x8000
143 #define GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF // Mask for Part-2 extension bits
144 
148 #define GRK_EXTENSION_NONE 0x0000
149 #define GRK_EXTENSION_MCT 0x0100
150 #define GRK_IS_PART2(v) ((v) & GRK_PROFILE_PART2)
151 
152 #define GRK_IS_CINEMA(v) (((v) >= GRK_PROFILE_CINEMA_2K) && ((v) <= GRK_PROFILE_CINEMA_S4K))
153 #define GRK_IS_STORAGE(v) ((v) == GRK_PROFILE_CINEMA_LTS)
154 
155 /*
156  *
157  * *********************************************
158  * Broadcast level (3-0 LSB) (15444-1 AMD4,AMD8)
159  * *********************************************
160  *
161  * indicates maximum bit rate and sample rate for a code stream
162  *
163  * Note: Mbit/s == 10^6 bits/s; Msamples/s == 10^6 samples/s
164  *
165  * 0: no maximum rate
166  * 1: 200 Mbits/s, 65 Msamples/s
167  * 2: 200 Mbits/s, 130 Msamples/s
168  * 3: 200 Mbits/s, 195 Msamples/s
169  * 4: 400 Mbits/s, 260 Msamples/s
170  * 5: 800Mbits/s, 520 Msamples/s
171  * >= 6: 2^(level-6) * 1600 Mbits/s, 2^(level-6) * 1200 Msamples/s
172  *
173  * Note: level cannot be greater than 11
174  *
175  * ****************
176  * Broadcast tiling
177  * ****************
178  *
179  * Either single-tile or multi-tile. Multi-tile only permits
180  * 1 or 4 tiles per frame, where multiple tiles have identical
181  * sizes, and are configured in either 2x2 or 1x4 layout.
182  *
183  *************************************************************
184  *
185  * ***************************************
186  * IMF main-level (3-0) LSB (15444-1 AMD8)
187  * ***************************************
188  *
189  * main-level indicates maximum number of samples per second,
190  * as listed above.
191  *
192  *
193  * **************************************
194  * IMF sub-level (7-4) LSB (15444-1 AMD8)
195  * **************************************
196  *
197  * sub-level indicates maximum bit rate for a code stream:
198  *
199  * 0: no maximum rate
200  * >0: 2^sub-level * 100 Mbits/second
201  *
202  * Note: sub-level cannot be greater than 9, and cannot be larger
203  * then maximum of (main-level -2) and 1.
204  *
205  */
207 #define GRK_GET_IMF_OR_BROADCAST_PROFILE(v) ((v) & 0x0f00)
208 
209 #define GRK_LEVEL_MAX 11U
210 #define GRK_GET_LEVEL(v) ((v) & 0xf)
212 /******* BROADCAST **********/
213 
214 #define GRK_IS_BROADCAST(v) ( ((v) >= GRK_PROFILE_BC_SINGLE) && \
215  ((v) <= (GRK_PROFILE_BC_MULTI_R | 0x000b) ) && \
216  ( ((v) & 0xf) <= 0xb ) )
217 
218 /* Maximum component sampling Rate (Mbits/sec) per level */
219 #define GRK_BROADCAST_LEVEL_1_MBITSSEC 200U
220 #define GRK_BROADCAST_LEVEL_2_MBITSSEC 200U
221 #define GRK_BROADCAST_LEVEL_3_MBITSSEC 200U
222 #define GRK_BROADCAST_LEVEL_4_MBITSSEC 400U
223 #define GRK_BROADCAST_LEVEL_5_MBITSSEC 800U
224 #define GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U
225 #define GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U
226 #define GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U
227 #define GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U
228 #define GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U
229 #define GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U
231 #define GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U
232 #define GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U
233 #define GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U
234 #define GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U
235 #define GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U
236 #define GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U
237 #define GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U
238 #define GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U
239 #define GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U
240 #define GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U
241 #define GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U
243 /********IMF ***********************************************************************/
244 
245 #define GRK_IS_IMF(v) ( ((v) >= GRK_PROFILE_IMF_2K) && \
246  ((v) <= (GRK_PROFILE_IMF_8K_R | 0x009b) ) && \
247  ( ((v) & 0xf) <= 0xb ) && \
248  ( ((v) & 0xf0) <= 0x90 ) )
249 
250 /* Maximum component sampling rate (MSamples/sec) per main level */
251 #define GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U
252 #define GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U
253 #define GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U
254 #define GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U
255 #define GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U
256 #define GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U
257 #define GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U
258 #define GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U
259 #define GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U
260 #define GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U
261 #define GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U
263 #define GRK_IMF_SUBLEVEL_MAX 9U
264 #define GRK_GET_IMF_SUBLEVEL(v) (((v) >> 4) & 0xf)
267 #define GRK_IMF_SUBLEVEL_1_MBITSSEC 200U
268 #define GRK_IMF_SUBLEVEL_2_MBITSSEC 400U
269 #define GRK_IMF_SUBLEVEL_3_MBITSSEC 800U
270 #define GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U
271 #define GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U
272 #define GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U
273 #define GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U
274 #define GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U
275 #define GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U
276 /**********************************************************************************/
277 
281 #define GRK_CINEMA_24_CS 1302083U
282 #define GRK_CINEMA_48_CS 651041U
283 #define GRK_CINEMA_24_COMP 1041666U
284 #define GRK_CINEMA_48_COMP 520833U
289 typedef enum _GRK_PROG_ORDER {
291  GRK_LRCP = 0,
292  GRK_RLCP = 1,
293  GRK_RPCL = 2,
294  GRK_PCRL = 3,
295  GRK_CPRL = 4,
298 
299 /*
300  *
301  * CIE Lab #defines
302  */
303 #define GRK_CUSTOM_CIELAB_SPACE 0x0
304 #define GRK_DEFAULT_CIELAB_SPACE 0x44454600 //'DEF'
305 #define GRK_CIE_DAY ((((uint32_t) 'C')<<24) + (((uint32_t) 'T')<<16))
306 #define GRK_CIE_D50 ((uint32_t) 0x00443530)
307 #define GRK_CIE_D65 ((uint32_t) 0x00443635)
308 #define GRK_CIE_D75 ((uint32_t) 0x00443735)
309 #define GRK_CIE_SA ((uint32_t) 0x00005341)
310 #define GRK_CIE_SC ((uint32_t) 0x00005343)
311 #define GRK_CIE_F2 ((uint32_t) 0x00004632)
312 #define GRK_CIE_F7 ((uint32_t) 0x00004637)
313 #define GRK_CIE_F11 ((uint32_t) 0x00463131)
314 
318 typedef enum _GRK_COLOR_SPACE {
327  GRK_CLRSPC_ICC = 9
329 
330 /* JPEG 2000 standard values for colour spaces */
339 };
340 
344 typedef enum _GRK_CODEC_FORMAT {
347  GRK_CODEC_JP2 = 2
349 
350 #define GRK_NUM_COMMENTS_SUPPORTED 256
351 #define GRK_NUM_ASOC_BOXES_SUPPORTED 256
352 #define GRK_MAX_COMMENT_LENGTH (UINT16_MAX-2)
353 
360 typedef void (*grk_msg_callback)(const char *msg, void *client_data);
361 
362 /*
363  ==========================================================
364  codec structures
365  ==========================================================
366  */
367 
372 typedef struct _grk_poc {
374  uint8_t resno0;
375  uint16_t compno0;
377  uint16_t layno1;
378  uint8_t resno1;
379  uint16_t compno1;
381  uint16_t layno0;
382  uint64_t precno0, precno1;
386  char progorder[5];
388  uint32_t tile;
390  uint32_t tx0, tx1, ty0, ty1;
392  uint8_t resS;
393  uint16_t compS;
395  uint16_t layE;
396  uint8_t resE;
397  uint16_t compE;
398  uint64_t prcE;
400  uint32_t txS, txE, tyS, tyE, dx, dy;
402  uint16_t lay_t;
403  uint8_t res_t;
404  uint16_t comp_t;
405  uint32_t tx0_t, ty0_t;
406  uint64_t prc_t;
408 
413  uint32_t dx;
415  uint32_t dy;
418 
421 typedef struct _grk_raw_cparameters {
423  uint32_t width;
425  uint32_t height;
427  uint16_t numcomps;
429  uint8_t prec;
431  bool sgnd;
436 
440 typedef struct _grk_cparameters {
444  uint32_t tx0;
446  uint32_t ty0;
448  uint32_t t_width;
450  uint32_t t_height;
461  uint8_t csty;
467  uint32_t numpocs;
469  uint16_t tcp_numlayers;
472  double tcp_rates[100];
474  double tcp_distoratio[100];
476  uint8_t numresolution;
478  uint32_t cblockw_init;
480  uint32_t cblockh_init;
482  uint8_t cblk_sty;
483  /* flag for high throughput */
484  bool isHT;
490  int32_t roi_compno;
492  uint32_t roi_shift;
493  /* number of precinct size specifications */
494  uint32_t res_spec;
504  uint32_t image_offset_x0;
506  uint32_t image_offset_y0;
508  uint32_t subsampling_dx;
510  uint32_t subsampling_dy;
520  uint32_t max_comp_size;
522  uint8_t tp_on;
524  uint8_t tp_flag;
526  uint8_t tcp_mct;
529  void *mct_data;
536  uint64_t max_cs_size;
539  uint16_t rsiz;
541 
542  // set to true if input file stores capture resolution
545 
548 
551 
552  // 0: bisect with all truncation points, 1: bisect with only feasible truncation points
554  uint32_t numThreads;
555  int32_t deviceId;
556  uint32_t duration; //seconds
558  uint32_t repeats;
559  bool writePLT;
560  bool writeTLM;
561  bool verbose;
563 
567 typedef struct _grk_channel_description {
568  uint16_t cn;
569  uint16_t typ;
570  uint16_t asoc;
572 
576 typedef struct _grk_channel_definition {
580 
585  uint16_t component_index;
586  uint8_t mapping_type;
587  uint8_t palette_column;
589 
593 typedef struct _grk_palette_data {
594  uint32_t *lut;
595  uint16_t num_entries;
597  uint8_t num_channels;
599  uint8_t *channel_prec;
601 
605 typedef struct _grk_jp2_color {
606  uint8_t *icc_profile_buf;
607  uint32_t icc_profile_len;
612 
613 typedef struct grk_asoc {
614  uint32_t level;
615  const char* label;
616  uint8_t *xml;
617  uint32_t xml_len;
619 
623 typedef struct _grk_header_info {
625  uint32_t cblockw_init;
627  uint32_t cblockh_init;
631  uint32_t mct;
634  uint16_t rsiz;
636  uint32_t numresolutions;
637  // coding style can be specified in main header COD segment,
638  // tile header COD segment, and tile component COC segment.
639  // !!! Assume that coding style does not vary across tile components !!!
640  uint8_t csty;
641  // code block style is specified in main header COD segment, and can
642  // be overridden in a tile header. !!! Assume that style does
643  // not vary across tiles !!!
644  uint8_t cblk_sty;
650  uint32_t tx0;
652  uint32_t ty0;
654  uint32_t t_width;
656  uint32_t t_height;
658  uint32_t t_grid_width;
660  uint32_t t_grid_height;
662  uint16_t tcp_numlayers;
663 
664  // note: xml_data will remain valid
665  // until codec is destroyed
666  uint8_t *xml_data;
667  size_t xml_data_len;
668  size_t num_comments;
672 
674  size_t num_asocs;
675 
677 
681 typedef struct _grk_dparameters {
689  uint8_t cp_reduce;
696  uint16_t cp_layer;
706  uint32_t DA_x0;
708  uint32_t DA_x1;
710  uint32_t DA_y0;
712  uint32_t DA_y1;
714  bool m_verbose;
716  uint16_t tile_index;
719  uint32_t flags;
721 
725 typedef enum grk_prec_mode {
728 
732 typedef struct _grk_prec {
733  uint8_t prec;
736 
737 #define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)
738 
742 typedef struct _grk_decompress_params {
756  uint32_t DA_x0;
758  uint32_t DA_x1;
760  uint32_t DA_y0;
762  uint32_t DA_y1;
764  bool m_verbose;
766  uint16_t tile_index;
770  uint32_t nb_precision;
771  /* force output colorspace to RGB */
772  bool force_rgb;
773  /* upsample components according to their dx/dy values */
774  bool upsample;
775  /* split output components to different files */
776  bool split_pnm;
777  /* serialize XML metadata to disk */
779  uint32_t compression;
780  // compression "quality". Meaning of "quality" depends
781  // on file format we are writing to
783  int32_t deviceId;
784  uint32_t duration; //seconds
786  uint32_t repeats;
787  bool verbose;
788  uint32_t numThreads;
790 
791 typedef void *grk_codec;
792 
793 /*
794  ==========================================================
795  I/O stream typedef definitions
796  ==========================================================
797  */
798 
799 /*
800  * Callback function prototype for read function
801  *
802  */
803 typedef size_t (*grk_stream_read_fn)(void *p_buffer, size_t nb_bytes,
804  void *user_data);
805 
806 
807 
808 /*
809  * Callback function prototype for write function
810  */
811 typedef size_t (*grk_stream_write_fn)(void *p_buffer, size_t nb_bytes,
812  void *user_data);
813 
814 /*
815  * Callback function prototype for (absolute) seek function.
816  */
817 typedef bool (*grk_stream_seek_fn)(uint64_t nb_bytes, void *user_data);
818 
819 /*
820  * Callback function prototype for free user data function
821  */
822 typedef void (*grk_stream_free_user_data_fn)(void *user_data);
823 
824 /*
825  * JPEG 2000 stream.
826  */
827 typedef void *grk_stream;
828 
829 /*
830  ==============================
831  image typedef definitions
832  ==============================
833  */
834 
835 // component type
837 
842 
843 };
844 
845 // component association
847 
853 
854 };
855 
859 typedef struct _grk_image_comp {
861  uint32_t dx;
863  uint32_t dy;
865  uint32_t w;
867  uint32_t stride;
869  uint32_t h;
871  uint32_t x0;
873  uint32_t y0;
874  // component registration coordinates
875  uint16_t Xcrg, Ycrg;
877  uint8_t prec;
878  bool sgnd;
880  int32_t *data;
881  // if true, then image will manage data, otherwise up to caller
882  bool owns_data;
886 
890 typedef struct _grk_image {
893  uint32_t x0;
896  uint32_t y0;
898  uint32_t x1;
900  uint32_t y1;
902  uint16_t numcomps;
912  uint8_t *iptc_buf;
913  size_t iptc_len;
914  uint8_t *xmp_buf;
915  size_t xmp_len;
917 
921 typedef struct _grk_image_comptparm {
924  uint32_t dx;
927  uint32_t dy;
929  uint32_t w;
930  /* data stride */
931  uint32_t stride;
933  uint32_t h;
935  uint32_t x0;
937  uint32_t y0;
939  uint8_t prec;
941  bool sgnd;
943 
944 /*
945  ==========================================================
946  Information about the JPEG 2000 code stream
947  ==========================================================
948  */
949 
953 typedef struct _grk_packet_info {
955  uint64_t start_pos;
957  uint64_t end_ph_pos;
959  uint64_t end_pos;
961  double disto;
963 
967 typedef struct _grk_marker_info {
969  uint16_t type;
971  uint64_t pos;
973  uint32_t len;
975 
976 
980 typedef struct _grk_tile_info {
982  double *thresh;
984  uint16_t tileno;
986  uint64_t start_pos;
988  uint64_t end_header;
990  uint64_t end_pos;
992  uint32_t pw[GRK_J2K_MAXRLVLS];
994  uint32_t ph[GRK_J2K_MAXRLVLS];
1001  int64_t numpix;
1002  double distotile;
1004  uint32_t marknum;
1008  uint32_t maxmarknum;
1010  uint32_t num_tps;
1012 
1016 typedef struct _grk_codestream_info {
1018  double D_max;
1020  uint32_t packno;
1022  uint32_t index_write;
1024  uint32_t numcomps;
1026  uint32_t numlayers;
1028  uint32_t *numdecompos;
1030  uint32_t marknum;
1034  uint32_t maxmarknum;
1038  uint64_t main_head_end;
1044 
1048 typedef struct _grk_tccp_info {
1050  uint32_t compno;
1052  uint8_t csty;
1054  uint32_t numresolutions;
1056  uint32_t cblkw;
1058  uint32_t cblkh;
1060  uint8_t cblk_sty;
1062  uint8_t qmfbid;
1064  uint8_t qntsty;
1070  uint8_t numgbits;
1072  uint32_t roishift;
1078 
1082 typedef struct _grk_tile_v2_info {
1084  uint16_t tileno;
1086  uint32_t csty;
1090  uint16_t numlayers;
1092  uint32_t mct;
1095 
1097 
1101 typedef struct _grk_codestream_info_v2 {
1102  /* Tile info */
1104  uint32_t tx0;
1106  uint32_t ty0;
1108  uint32_t t_width;
1110  uint32_t t_height;
1112  uint32_t t_grid_width;
1114  uint32_t t_grid_height;
1116  uint32_t nbcomps;
1120 
1124 typedef struct _grk_tp_index {
1126  uint64_t start_pos;
1128  uint64_t end_header;
1130  uint64_t end_pos;
1132 
1136 typedef struct _grk_tile_index {
1138  uint16_t tileno;
1140  uint32_t nb_tps;
1142  uint32_t current_nb_tps;
1144  uint32_t current_tpsno;
1148  uint32_t marknum;
1152  uint32_t maxmarknum;
1154 
1158 typedef struct _grk_codestream_index {
1162  uint64_t main_head_end;
1166  uint32_t marknum;
1170  uint32_t maxmarknum;
1171  uint32_t nb_of_tiles;
1174 
1176 // Structs to pass data between grok and plugin
1178 
1182 typedef struct _grk_plugin_pass {
1183  double distortionDecrease; //distortion decrease up to and including this pass
1184  size_t rate; // rate up to and including this pass
1185  size_t length; //stream length for this pass
1187 
1191 typedef struct _grk_plugin_code_block {
1193  // debug info
1194  uint32_t x0, y0, x1, y1;
1195  unsigned int *contextStream;
1197  uint32_t numPix;
1198  uint8_t *compressedData;
1201  size_t numPasses;
1203  unsigned int sortedIndex;
1205 
1209 typedef struct _grk_plugin_precinct {
1210  uint64_t numBlocks;
1213 
1217 typedef struct _grk_plugin_band {
1218  uint8_t orientation;
1219  uint64_t numPrecincts;
1221  float stepsize;
1223 
1227 typedef struct _grk_plugin_resolution {
1228  size_t level;
1229  size_t numBands;
1232 
1240 
1241 #define GRK_DECODE_HEADER (1 << 0)
1242 #define GRK_DECODE_T2 (1 << 1)
1243 #define GRK_DECODE_T1 (1 << 2)
1244 #define GRK_DECODE_POST_T1 (1 << 3)
1245 #define GRK_PLUGIN_DECODE_CLEAN (1 << 4)
1246 #define GRK_DECODE_ALL (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | GRK_DECODE_POST_T1)
1247 
1251 typedef struct _grk_plugin_tile {
1256 
1260 GRK_API const char* GRK_CALLCONV grk_version(void);
1261 
1268 GRK_API bool GRK_CALLCONV grk_initialize(const char *plugin_path,
1269  uint32_t numthreads);
1270 
1275 
1276 /*
1277  ============================
1278  image function definitions
1279  ============================
1280  */
1281 
1292 GRK_API grk_image* GRK_CALLCONV grk_image_create(uint16_t numcmpts,
1293  grk_image_cmptparm *cmptparms, GRK_COLOR_SPACE clrspc, bool allocData);
1294 
1301 
1302 
1309 
1316  grk_image_comp *image);
1317 
1318 /*
1319  =================================
1320  stream function definitions
1321  =================================
1322  */
1323 
1334 GRK_API grk_stream* GRK_CALLCONV grk_stream_create(size_t buffer_size,
1335  bool is_input);
1336 
1345 
1353  grk_stream_read_fn p_function);
1354 
1362  grk_stream_write_fn p_function);
1363 
1371  grk_stream_seek_fn p_function);
1372 
1381  void *data, grk_stream_free_user_data_fn p_function);
1382 
1390  uint64_t data_length);
1391 
1399  const char *fname, size_t buffer_size, bool is_read_stream);
1400 
1410  size_t buffer_len, bool ownsBuffer, bool is_read_stream);
1411 
1418  grk_stream *stream);
1419 
1427  const char *fname, bool read_stream);
1428 
1429 /*
1430  ========================================
1431  logger function definitions
1432  ========================================
1433  */
1441  void *user_data);
1449  void *user_data);
1457  void *user_data);
1458 
1459 
1469  grk_stream *stream);
1470 
1477  grk_dparameters *parameters);
1478 
1488  grk_dparameters *parameters);
1489 
1501  grk_header_info *header_info, grk_image **image);
1502 
1517  grk_image *image, uint32_t start_x, uint32_t start_y, uint32_t end_x,
1518  uint32_t end_y);
1519 
1528 GRK_API bool GRK_CALLCONV grk_decompress(grk_codec p_decompressor,
1529  grk_plugin_tile *tile, grk_image *image);
1530 
1541  grk_image *image, uint16_t tile_index);
1542 
1549 
1550 
1551 /* COMPRESSION FUNCTIONS*/
1552 
1561  grk_stream *stream);
1562 
1585  grk_cparameters *parameters);
1586 
1595  grk_cparameters *parameters, grk_image *image);
1596 
1604 
1612 
1634  uint16_t tile_index, uint8_t *data, uint64_t data_size);
1635 
1636 
1645  grk_plugin_tile *tile);
1646 
1647 
1653 
1654 
1661 
1662 
1668  grk_codestream_info_v2 **cstr_info);
1669 
1678 GRK_API void GRK_CALLCONV grk_dump_codec(grk_codec codec, uint32_t info_flag,
1679  FILE *output_stream);
1680 
1690  grk_codec codec);
1691 
1701 
1708  grk_codestream_index **p_cstr_index);
1709 
1721  float *pEncodingMatrix, int32_t *p_dc_shift, uint32_t pNbComp);
1722 
1723 /*****************
1724  Plugin Interface
1725  ******************/
1726 
1727 /*
1728  Plugin management
1729  */
1730 
1731 typedef struct _grk_plugin_load_info {
1732  const char *plugin_path;
1734 
1741 
1746 
1747 // No debug is done on plugin. Production setting.
1748 #define GRK_PLUGIN_STATE_NO_DEBUG 0x0
1749 
1750 /*
1751  For compress debugging, the plugin first performs a T1 compress.
1752  Then:
1753  1. perform host DWT on plugin MCT data, and write to host image
1754  This way, both plugin and host start from same point
1755  (assume MCT is equivalent for both host and plugin)
1756  2. map plugin DWT data, compare with host DWT, and then write to plugin image
1757  At this point in the code, the plugin image holds plugin DWT data. And if no warnings are triggered,
1758  then we can safely say that host and plugin DWT data are identical.
1759  3. Perform host compress, skipping MCT and DWT (they have already been performed)
1760  4. during host compress, each context that is formed is compared against context stream from plugin
1761  5. rate control - synch with plugin code stream, and compare
1762  6. T2 and store to disk
1763  */
1764 
1765 #define GRK_PLUGIN_STATE_DEBUG 0x1
1766 #define GRK_PLUGIN_STATE_PRE_TR1 0x2
1767 #define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4
1768 #define GRK_PLUGIN_STATE_MCT_ONLY 0x8
1769 
1774 
1775 /*
1776  Plugin compressing
1777  */
1778 typedef struct _grk_plugin_init_info {
1779  int32_t deviceId;
1780  bool verbose;
1782 
1787 
1789  const char *input_file_name;
1791  const char *output_file_name;
1795  uint8_t *compressBuffer;
1797  unsigned int error_code;
1800 
1803 
1811  grk_cparameters *compress_parameters,
1813 
1825 GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress(const char *input_dir,
1826  const char *output_dir, grk_cparameters *compress_parameters,
1828 
1833 
1838 
1839 /*
1840  Plugin decompression
1841  */
1842 
1843 typedef int (*GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info,
1844  grk_image *image);
1845 
1847  size_t deviceId;
1849  const char *input_file_name;
1850  const char *output_file_name;
1851  // input file format 0: J2K, 1: JP2
1853  // output file format 0: PGX, 1: PxM, 2: BMP etc
1862  unsigned int error_code;
1864  uint32_t full_image_x0;
1865  uint32_t full_image_y0;
1866  void* user_data;
1868 
1871 
1879  grk_decompress_parameters *decompress_parameters,
1881 
1893  const char *input_dir, const char *output_dir,
1894  grk_decompress_parameters *decompress_parameters,
1896 
1901 
1906 
1907 #ifdef __cplusplus
1908 }
1909 #endif
1910 
_grk_decompress_params
Decompress parameters.
Definition: grok.h:742
_grk_tile_index::nb_tps
uint32_t nb_tps
number of tile parts
Definition: grok.h:1140
GRK_COMPONENT_ASSOC_WHOLE_IMAGE
@ GRK_COMPONENT_ASSOC_WHOLE_IMAGE
Definition: grok.h:848
_grk_codestream_index
Code stream index info.
Definition: grok.h:1158
grk_image_single_component_data_free
void GRK_CALLCONV grk_image_single_component_data_free(grk_image_comp *comp)
Deallocate data for single image component.
Definition: grok.cpp:569
_grk_tccp_info::prch
uint32_t prch[GRK_J2K_MAXRLVLS]
precinct height
Definition: grok.h:1076
grk::minpf_load_from_path
int32_t minpf_load_from_path(const char *path, minpf_invoke_service_func func)
Definition: minpf_plugin_manager.cpp:169
_grk_tile_info::pw
uint32_t pw[GRK_J2K_MAXRLVLS]
precinct number for each resolution level (width)
Definition: grok.h:992
_grk_cparameters::duration
uint32_t duration
Definition: grok.h:556
_grk_cparameters::t_width
uint32_t t_width
XTsiz.
Definition: grok.h:448
_grk_plugin_pass::rate
size_t rate
Definition: grok.h:1184
_grk_poc::compno0
uint16_t compno0
Definition: grok.h:375
grk_component_mapping_comp
struct _grk_component_mapping_comp grk_component_mapping_comp
Component mappings: component index, mapping type, palette column.
_grk_dparameters::cp_layer
uint16_t cp_layer
Set the maximum number of quality layers to decompress.
Definition: grok.h:696
_grk_image_comptparm::w
uint32_t w
data width
Definition: grok.h:929
grk_precision_mode
enum grk_prec_mode grk_precision_mode
Precision mode.
_grk_decompress_params::infile
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:746
grk_stream_create
GRK_API grk_stream *GRK_CALLCONV grk_stream_create(size_t buffer_size, bool is_input)
Create an abstract stream.
Definition: BufferedStream.cpp:424
grk_plugin_stop_batch_decompress
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress(void)
Stop batch decompress.
Definition: grok.cpp:829
grk_plugin_decompress_callback
int32_t(* grk_plugin_decompress_callback)(grk_plugin_decompress_callback_info *info)
Definition: grok.h:1869
_grk_header_info::num_asocs
size_t num_asocs
Definition: grok.h:674
_grk_poc::dx
uint32_t dx
Definition: grok.h:400
grk_tile_index
struct _grk_tile_index grk_tile_index
Tile index info.
grk_set_default_compress_params
void GRK_CALLCONV grk_set_default_compress_params(grk_cparameters *parameters)
Set compressing parameters to default values, that means :
Definition: grok.cpp:329
GRK_PROG_UNKNOWN
@ GRK_PROG_UNKNOWN
place-holder
Definition: grok.h:290
GRK_ENUM_CLRSPC_SYCC
@ GRK_ENUM_CLRSPC_SYCC
Definition: grok.h:337
GRK_ENUM_CLRSPC_SRGB
@ GRK_ENUM_CLRSPC_SRGB
Definition: grok.h:335
_grk_plugin_code_block::contextStream
unsigned int * contextStream
Definition: grok.h:1195
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.
Definition: BufferedStream.cpp:432
ThreadPool
Definition: ThreadPool.hpp:37
grk_plugin_init_batch_decompress
int32_t GRK_CALLCONV grk_plugin_init_batch_decompress(const char *input_dir, const char *output_dir, grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
Initialize batch decompress.
Definition: grok.cpp:799
grk_precision
struct _grk_prec grk_precision
Precision.
grk::PLUGIN_ENCODE
int32_t(* PLUGIN_ENCODE)(grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK callback)
Definition: plugin_interface.h:71
grk::GRK_COMP_PARAM_DEFAULT_PROG_ORDER
const GRK_PROG_ORDER GRK_COMP_PARAM_DEFAULT_PROG_ORDER
Definition: CodeStream.h:42
_grk_component_mapping_comp::component_index
uint16_t component_index
Definition: grok.h:585
grk::grk_aligned_free
void grk_aligned_free(void *ptr)
Definition: MemManager.cpp:123
grk_end_compress
bool GRK_CALLCONV grk_end_compress(grk_codec p_codec)
End to compress the current image.
Definition: grok.cpp:393
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.
Definition: grok.cpp:549
grk_plugin_compress_user_callback_info::compressor_parameters
grk_cparameters * compressor_parameters
Definition: grok.h:1792
grk::create_mapped_file_write_stream
grk_stream * create_mapped_file_write_stream(const char *fname)
Definition: GrkMappedFile.cpp:225
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.
Definition: grok.cpp:291
plugin_init_batch_decode_method_name
static const char * plugin_init_batch_decode_method_name
Definition: grok.cpp:590
_grk_raw_comp_cparameters
Definition: grok.h:411
_grk_cparameters::roi_compno
int32_t roi_compno
region of interest: affected component in [0..3]; -1 indicates no ROI
Definition: grok.h:490
grk_seek_in_file
static bool grk_seek_in_file(int64_t nb_bytes, FILE *p_user_data)
Definition: grok.cpp:110
grk_plugin_stop_batch_decompress
void GRK_CALLCONV grk_plugin_stop_batch_decompress(void)
Stop batch decompress.
Definition: grok.cpp:829
GRK_CODEC_FORMAT
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Supported codecs.
_grk_plugin_precinct
Plugin precinct.
Definition: grok.h:1209
_grk_packet_info::start_pos
uint64_t start_pos
packet start position (including SOP marker if it exists)
Definition: grok.h:955
grk_compress_tile
bool GRK_CALLCONV grk_compress_tile(grk_codec p_codec, uint16_t tile_index, uint8_t *p_data, uint64_t data_size)
Compress uncompressed data stored in a buffer.
Definition: grok.cpp:437
_grk_plugin_decompress_callback_info::output_file_name
const char * output_file_name
Definition: grok.h:1850
grk_set_error_handler
GRK_API bool GRK_CALLCONV grk_set_error_handler(grk_msg_callback p_callback, void *user_data)
Set error handler.
Definition: grok.cpp:87
grk_get_cstr_info
grk_codestream_info_v2 *GRK_CALLCONV grk_get_cstr_info(grk_codec p_codec)
Get code stream information from codec.
Definition: grok.cpp:469
plugin_init_method_name
static const char * plugin_init_method_name
Definition: grok.cpp:582
_grk_dparameters::nb_tile_to_decompress
uint32_t nb_tile_to_decompress
Number of tiles to decompress.
Definition: grok.h:718
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:783
grk::logger::error_handler
grk_msg_callback error_handler
Definition: logger.h:27
GRK_TIF_FMT
@ GRK_TIF_FMT
Definition: grok.h:67
_grk_cparameters::rateControlAlgorithm
uint32_t rateControlAlgorithm
Definition: grok.h:553
_grk_poc::progorder
char progorder[5]
Progression order string.
Definition: grok.h:386
_grk_poc
Progression order changes.
Definition: grok.h:372
grk::logger::m_error_data
void * m_error_data
Definition: logger.h:24
grk_dump_codec
void GRK_CALLCONV grk_dump_codec(grk_codec p_codec, uint32_t info_flag, FILE *output_stream)
Dump codec information to file.
Definition: grok.cpp:461
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.
Definition: grok.cpp:461
_grk_plugin_decompress_callback_info::full_image_x0
uint32_t full_image_x0
Definition: grok.h:1864
_grk_tile_index::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1150
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.
Definition: grok.cpp:485
_grk_jp2_color::palette
grk_palette_data * palette
Definition: grok.h:609
plugin_batch_encode_method_name
static const char * plugin_batch_encode_method_name
Definition: grok.cpp:584
GRK_COMPONENT_ASSOC_COLOUR_1
@ GRK_COMPONENT_ASSOC_COLOUR_1
Definition: grok.h:849
GRK_PXM_FMT
@ GRK_PXM_FMT
Definition: grok.h:63
_grk_dparameters::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:700
_grk_header_info::num_comments
size_t num_comments
Definition: grok.h:668
_grk_tile_info::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1008
grk_init_compress
bool GRK_CALLCONV grk_init_compress(grk_codec p_codec, grk_cparameters *parameters, grk_image *p_image)
Set up the compressor parameters using the current image and user parameters.
Definition: grok.cpp:358
_grk_jp2_color::has_colour_specification_box
bool has_colour_specification_box
Definition: grok.h:610
_grk_raw_comp_cparameters::dy
uint32_t dy
subsampling in Y direction
Definition: grok.h:415
_grk_cparameters::display_resolution
double display_resolution[2]
Definition: grok.h:550
_grk_decompress_params::m_verbose
bool m_verbose
Verbose mode.
Definition: grok.h:764
_grk_poc::txS
uint32_t txS
Start and end values of tile width and height, initialized in pi_initialise_encode.
Definition: grok.h:400
_grk_plugin_decompress_callback_info::tile
grk_plugin_tile * tile
Definition: grok.h:1861
_grk_raw_cparameters
Definition: grok.h:421
grk_create_decompress
GRK_API grk_codec GRK_CALLCONV grk_create_decompress(GRK_CODEC_FORMAT format, grk_stream *stream)
Create J2K/JP2 decompression structure.
Definition: grok.cpp:219
_grk_header_info::mct
uint32_t mct
multi-component transform identifier
Definition: grok.h:631
_grk_plugin_code_block::y0
uint32_t y0
Definition: grok.h:1194
_grk_plugin_load_info
Definition: grok.h:1731
GRK_CLRSPC_CMYK
@ GRK_CLRSPC_CMYK
CMYK.
Definition: grok.h:324
_grk_plugin_resolution::band
grk_plugin_band ** band
Definition: grok.h:1230
_grk_cparameters::write_capture_resolution_from_file
bool write_capture_resolution_from_file
Definition: grok.h:543
_grk_header_info::cblk_sty
uint8_t cblk_sty
Definition: grok.h:644
_grk_image_comp::stride
uint32_t stride
data stride
Definition: grok.h:867
_grk_tccp_info::roishift
uint32_t roishift
Region Of Interest shift.
Definition: grok.h:1072
_grk_codestream_info::tile
grk_tile_info * tile
information regarding tiles inside image
Definition: grok.h:1042
GRK_PLUGIN_COMPRESS_USER_CALLBACK
bool(* GRK_PLUGIN_COMPRESS_USER_CALLBACK)(grk_plugin_compress_user_callback_info *info)
Definition: grok.h:1801
grk::FileFormat::free_color
static void free_color(grk_jp2_color *color)
Definition: FileFormat.cpp:2971
grk::logger::m_warning_data
void * m_warning_data
Definition: logger.h:25
grk_create_compress
grk_codec GRK_CALLCONV grk_create_compress(GRK_CODEC_FORMAT p_format, grk_stream *stream)
Creates a J2K/JP2 compression structure.
Definition: grok.cpp:305
_grk_tile_v2_info::tileno
uint16_t tileno
number (index) of tile
Definition: grok.h:1084
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:1050
grk_codec_private::m_codeStreamBase
ICodeStream * m_codeStreamBase
Definition: grok.cpp:42
_grk_image_comptparm::sgnd
bool sgnd
true if data is signed
Definition: grok.h:941
GRK_LRCP
@ GRK_LRCP
layer-resolution-component-precinct order
Definition: grok.h:291
grk_codec_private::is_decompressor
bool is_decompressor
Flag to indicate if the codec is used to decompress or compress.
Definition: grok.cpp:45
grk_plugin_cleanup
void GRK_CALLCONV grk_plugin_cleanup(void)
Release plugin resources.
Definition: grok.cpp:646
_grk_decompress_params::verbose
bool verbose
Definition: grok.h:787
GRK_COMPONENT_ASSOC_COLOUR_3
@ GRK_COMPONENT_ASSOC_COLOUR_3
Definition: grok.h:851
_grk_image::color
grk_jp2_color color
Definition: grok.h:907
_grk_plugin_decompress_callback_info::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
Definition: grok.h:1854
grk_stream_create_file_stream
grk_stream *GRK_CALLCONV grk_stream_create_file_stream(const char *fname, size_t p_size, bool is_read_stream)
Create stream from a file identified with its filename with a specific buffer size.
Definition: grok.cpp:507
GRK_COMPONENT_TYPE
GRK_COMPONENT_TYPE
Definition: grok.h:836
_grk_header_info::asocs
grk_asoc asocs[GRK_NUM_ASOC_BOXES_SUPPORTED]
Definition: grok.h:673
_grk_poc::resno1
uint8_t resno1
Definition: grok.h:378
grk_plugin_compress_user_callback_info
Definition: grok.h:1788
_grk_decompress_params::repeats
uint32_t repeats
Definition: grok.h:786
GRK_ENUM_CLRSPC_CIE
@ GRK_ENUM_CLRSPC_CIE
Definition: grok.h:334
GRK_CALLCONV
#define GRK_CALLCONV
Definition: grok.h:49
_grk_codestream_index::main_head_end
uint64_t main_head_end
main header end position (first SOT position)
Definition: grok.h:1162
grk_asoc::level
uint32_t level
Definition: grok.h:614
_grk_tile_v2_info::mct
uint32_t mct
multi-component transform identifier
Definition: grok.h:1092
_grk_image::display_resolution
double display_resolution[2]
Definition: grok.h:911
_grk_raw_cparameters::prec
uint8_t prec
bit depth of the raw image
Definition: grok.h:429
plugin_batch_decode_method_name
static const char * plugin_batch_decode_method_name
Definition: grok.cpp:592
grk_plugin_load
bool GRK_CALLCONV grk_plugin_load(grk_plugin_load_info info)
Load plugin.
Definition: grok.cpp:605
_grk_header_info::csty
uint8_t csty
Definition: grok.h:640
GRK_CLRSPC_SRGB
@ GRK_CLRSPC_SRGB
sRGB
Definition: grok.h:320
_grk_poc::compE
uint16_t compE
Definition: grok.h:397
grk::BufferedStream
Byte input-output stream.
Definition: BufferedStream.h:38
_grk_header_info::t_width
uint32_t t_width
XTsiz.
Definition: grok.h:654
_grk_codestream_info_v2::nbcomps
uint32_t nbcomps
number of components
Definition: grok.h:1116
_grk_cparameters::subsampling_dx
uint32_t subsampling_dx
subsampling value for dx
Definition: grok.h:508
_grk_plugin_decompress_callback_info::deviceId
size_t deviceId
Definition: grok.h:1847
_grk_image::comps
grk_image_comp * comps
image components
Definition: grok.h:906
_grk_poc::res_t
uint8_t res_t
Definition: grok.h:403
grk_plugin_init
GRK_API bool GRK_CALLCONV grk_plugin_init(grk_plugin_init_info initInfo)
Initialize plugin.
Definition: grok.cpp:650
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.
Definition: grok.cpp:476
_grk_tccp_info::stepsizes_expn
uint32_t stepsizes_expn[GRK_J2K_MAXBANDS]
stepsizes used for quantization
Definition: grok.h:1068
ThreadPool::singleton
static ThreadPool * singleton
Definition: ThreadPool.hpp:92
_grk_cparameters::write_capture_resolution
bool write_capture_resolution
Definition: grok.h:546
_grk_cparameters::tcp_rates
double tcp_rates[100]
rates of layers, expressed as compression ratios.
Definition: grok.h:472
_grk_decompress_params::serialize_xml
bool serialize_xml
Definition: grok.h:778
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:1030
_grk_channel_description::typ
uint16_t typ
Definition: grok.h:569
_grk_tile_info::start_pos
uint64_t start_pos
start position
Definition: grok.h:986
_grk_image::xmp_buf
uint8_t * xmp_buf
Definition: grok.h:914
_grk_header_info::t_height
uint32_t t_height
YTsiz.
Definition: grok.h:656
_grk_tile_info
Tile info.
Definition: grok.h:980
_grk_dparameters::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:702
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.
Definition: grok.cpp:469
_grk_codestream_info_v2::t_width
uint32_t t_width
tile size in x = XTsiz
Definition: grok.h:1108
grk_msg_callback
void(* grk_msg_callback)(const char *msg, void *client_data)
Callback function prototype for logging.
Definition: grok.h:360
GRK_NUM_PROGRESSION_ORDERS
@ GRK_NUM_PROGRESSION_ORDERS
Definition: grok.h:296
grk_codec
void * grk_codec
Definition: grok.h:791
_grk_decompress_params::force_rgb
bool force_rgb
Definition: grok.h:772
_grk_plugin_code_block
Plugin code block.
Definition: grok.h:1191
grk::PLUGIN_STOP_BATCH_ENCODE
void(* PLUGIN_STOP_BATCH_ENCODE)(void)
Definition: plugin_interface.h:78
grk::j2k_destroy_cstr_index
void j2k_destroy_cstr_index(grk_codestream_index *p_cstr_ind)
Destroys a code stream index structure.
Definition: Dump.cpp:502
GROK_FTELL
#define GROK_FTELL(stream)
Definition: grk_includes.h:78
grk::grk_calloc
void * grk_calloc(size_t num, size_t size)
Allocate a memory block with elements initialized to 0.
Definition: MemManager.cpp:111
_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:442
grk_plugin_compress_user_callback_info::output_file_name
const char * output_file_name
Definition: grok.h:1791
_grk_cparameters::cblockh_init
uint32_t cblockh_init
initial code block height (default to 64)
Definition: grok.h:480
_grk_cparameters::prog_order
GRK_PROG_ORDER prog_order
progression order (default GRK_LRCP)
Definition: grok.h:463
grk_codec_private::m_stream
grk_stream * m_stream
Definition: grok.cpp:43
_grk_codestream_index::main_head_start
uint64_t main_head_start
main header start position (SOC position)
Definition: grok.h:1160
_grk_decompress_params::compression
uint32_t compression
Definition: grok.h:779
_grk_decompress_params::tile_index
uint16_t tile_index
tile number of the decompressed tile
Definition: grok.h:766
_grk_plugin_code_block::numBitPlanes
size_t numBitPlanes
Definition: grok.h:1200
_grk_header_info::cblockh_init
uint32_t cblockh_init
initial code block height, default to 64
Definition: grok.h:627
grk_set_default_decompress_params
GRK_API void GRK_CALLCONV grk_set_default_decompress_params(grk_dparameters *parameters)
Initialize decompress parameters with default values.
Definition: grok.cpp:243
GRK_CLRSPC_GRAY
@ GRK_CLRSPC_GRAY
grayscale
Definition: grok.h:321
_grk_cparameters::prch_init
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition: grok.h:498
_grk_tp_index
Tile part index info.
Definition: grok.h:1124
_grk_decompress_params::DA_y1
uint32_t DA_y1
Decompress window bottom boundary.
Definition: grok.h:762
_grk_plugin_decompress_callback_info::decompress_flags
uint32_t decompress_flags
Definition: grok.h:1863
ojph_block_decoder.h
GRK_NUM_ASOC_BOXES_SUPPORTED
#define GRK_NUM_ASOC_BOXES_SUPPORTED
Definition: grok.h:351
grk::PLUGIN_BATCH_DECODE
int32_t(* PLUGIN_BATCH_DECODE)(void)
Definition: plugin_interface.h:141
_grk_image_comptparm::dy
uint32_t dy
YRsiz: vertical separation of a sample of component with respect to the reference grid.
Definition: grok.h:927
_grk_cparameters::capture_resolution_from_file
double capture_resolution_from_file[2]
Definition: grok.h:544
_grk_image_comptparm::prec
uint8_t prec
precision
Definition: grok.h:939
GRK_CLRSPC_SYCC
@ GRK_CLRSPC_SYCC
standard YCC (YUV)
Definition: grok.h:322
grk::grk_image_single_component_data_alloc
bool grk_image_single_component_data_alloc(grk_image_comp *comp)
Allocate data for single image component.
Definition: CodeStream.cpp:200
grk_get_cstr_index
grk_codestream_index *GRK_CALLCONV grk_get_cstr_index(grk_codec p_codec)
Get the code stream index from the codec.
Definition: grok.cpp:485
_grk_decompress_params::DA_x1
uint32_t DA_x1
Decompress window right boundary.
Definition: grok.h:758
_grk_codestream_info
Code stream info.
Definition: grok.h:1016
GRK_PREC_MODE_SCALE
@ GRK_PREC_MODE_SCALE
Definition: grok.h:726
_grk_raw_cparameters::height
uint32_t height
height of the raw image
Definition: grok.h:425
_grk_cparameters::tp_on
uint8_t tp_on
Tile part generation.
Definition: grok.h:522
_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:957
GRK_EXTENSION_MCT
#define GRK_EXTENSION_MCT
Definition: grok.h:149
grk::FileFormat
JPEG 2000 file format reader/writer.
Definition: FileFormat.h:158
_grk_palette_data
Palette data.
Definition: grok.h:593
_grk_plugin_pass
Plugin pass.
Definition: grok.h:1182
_grk_poc::prg
GRK_PROG_ORDER prg
Definition: grok.h:384
grk_version
const char *GRK_CALLCONV grk_version(void)
library version
Definition: grok.cpp:140
grk::logger::info_handler
grk_msg_callback info_handler
Definition: logger.h:29
_grk_tccp_info::cblkh
uint32_t cblkh
code-blocks height
Definition: grok.h:1058
grk_plugin_tile
struct _grk_plugin_tile grk_plugin_tile
Plugin tile.
grk_start_compress
bool GRK_CALLCONV grk_start_compress(grk_codec p_codec)
Start compressing current image.
Definition: grok.cpp:369
grk_plugin_tile_component
Plugin tile component.
Definition: grok.h:1236
GRK_ENUM_CLRSPC_CMYK
@ GRK_ENUM_CLRSPC_CMYK
Definition: grok.h:333
_grk_tccp_info::numgbits
uint8_t numgbits
number of guard bits
Definition: grok.h:1070
grk_destroy_cstr_index
GRK_API void GRK_CALLCONV grk_destroy_cstr_index(grk_codestream_index **p_cstr_index)
Destroy code stream index.
Definition: grok.cpp:492
grk::grk_free
void grk_free(void *ptr)
Deallocates or frees a memory block.
Definition: MemManager.cpp:141
_grk_codestream_index::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1168
_grk_palette_data::channel_sign
bool * channel_sign
Definition: grok.h:598
grk::PLUGIN_DECODE
int32_t(* PLUGIN_DECODE)(grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)
Definition: plugin_interface.h:134
_grk_tile_v2_info::tccp_info
grk_tccp_info * tccp_info
information concerning tile component parameters
Definition: grok.h:1094
_grk_cparameters::prcw_init
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:496
_grk_image_comptparm::h
uint32_t h
data height
Definition: grok.h:933
_grk_image::numcomps
uint16_t numcomps
number of components in the image
Definition: grok.h:902
_grk_jp2_color::channel_definition
grk_channel_definition * channel_definition
Definition: grok.h:608
_grk_plugin_code_block::numPix
uint32_t numPix
Definition: grok.h:1197
grk::minpf_get_symbol
void * minpf_get_symbol(minpf_dynamic_library *library, const char *symbol)
Definition: minpf_dynamic_library.cpp:150
_grk_plugin_band::numPrecincts
uint64_t numPrecincts
Definition: grok.h:1219
_grk_decompress_params::nb_tile_to_decompress
uint32_t nb_tile_to_decompress
Number of tiles to decompress.
Definition: grok.h:768
_grk_plugin_tile
Plugin tile.
Definition: grok.h:1251
_grk_codestream_info::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1032
_grk_poc::compS
uint16_t compS
Definition: grok.h:393
_grk_tile_info::end_pos
uint64_t end_pos
end position
Definition: grok.h:990
GROK_FSEEK
#define GROK_FSEEK(stream, offset, whence)
Definition: grk_includes.h:76
_grk_jp2_color::icc_profile_len
uint32_t icc_profile_len
Definition: grok.h:607
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.
Definition: grok.cpp:783
grk_start_compress
GRK_API bool GRK_CALLCONV grk_start_compress(grk_codec codec)
Start compressing current image.
Definition: grok.cpp:369
grk_plugin_internal_encode_callback
void grk_plugin_internal_encode_callback(plugin_encode_user_callback_info *info)
Definition: grok.cpp:670
_grk_plugin_code_block::passes
grk_plugin_pass passes[67]
Definition: grok.h:1202
grk_plugin_compress_user_callback_info
struct grk_plugin_compress_user_callback_info grk_plugin_compress_user_callback_info
_grk_marker_info::type
uint16_t type
marker type
Definition: grok.h:969
_grk_cparameters::roi_shift
uint32_t roi_shift
region of interest: upshift value
Definition: grok.h:492
_grk_image_comp::w
uint32_t w
data width
Definition: grok.h:865
GRK_COMPONENT_TYPE_PREMULTIPLIED_OPACITY
@ GRK_COMPONENT_TYPE_PREMULTIPLIED_OPACITY
Definition: grok.h:840
_grk_prec::mode
grk_precision_mode mode
Definition: grok.h:734
grk_plugin_get_debug_state
GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state()
Get debug state of plugin.
Definition: grok.cpp:633
_grk_plugin_precinct::blocks
grk_plugin_code_block ** blocks
Definition: grok.h:1211
grk::PLUGIN_GET_DEBUG_STATE
uint32_t(* PLUGIN_GET_DEBUG_STATE)(void)
Definition: plugin_interface.h:46
GRK_CLRSPC_CUSTOM_CIE
@ GRK_CLRSPC_CUSTOM_CIE
custom CIE LAB
Definition: grok.h:326
grk_set_MCT
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.
Definition: grok.cpp:412
_grk_cparameters::kernelBuildOptions
uint32_t kernelBuildOptions
Definition: grok.h:557
grk_plugin_batch_decompress
int32_t GRK_CALLCONV grk_plugin_batch_decompress(void)
Batch decompress.
Definition: grok.cpp:817
grk::PLUGIN_INIT_BATCH_DECODE
int32_t(* PLUGIN_INIT_BATCH_DECODE)(const char *input_dir, const char *output_dir, grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)
Definition: plugin_interface.h:137
_grk_tp_index::end_pos
uint64_t end_pos
end position
Definition: grok.h:1130
_grk_cparameters::writePLT
bool writePLT
Definition: grok.h:559
_grk_header_info::prcw_init
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:646
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:1024
grk_jp2_color
struct _grk_jp2_color grk_jp2_color
ICC profile, palette, channel definition.
grk_image_all_components_data_free
void GRK_CALLCONV grk_image_all_components_data_free(grk_image *image)
Deallocate all component data for an image.
Definition: grok.cpp:561
grk_plugin_compress_user_callback_info::error_code
unsigned int error_code
Definition: grok.h:1797
grk_free_file
static void grk_free_file(void *p_user_data)
Definition: grok.cpp:502
_grk_poc::tx0_t
uint32_t tx0_t
Definition: grok.h:405
grk::create_mapped_file_read_stream
grk_stream * create_mapped_file_read_stream(const char *fname)
Definition: GrkMappedFile.cpp:196
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.
Definition: grok.cpp:382
_grk_header_info::prch_init
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition: grok.h:648
_grk_decompress_params::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format 0: PGX, 1: PxM, 2: BMP
Definition: grok.h:752
_grk_header_info::numresolutions
uint32_t numresolutions
number of resolutions
Definition: grok.h:636
_grk_decompress_params::kernelBuildOptions
uint32_t kernelBuildOptions
Definition: grok.h:785
_grk_cparameters::capture_resolution
double capture_resolution[2]
Definition: grok.h:547
_grk_plugin_code_block::x0
uint32_t x0
Definition: grok.h:1194
_grk_poc::compno1
uint16_t compno1
Definition: grok.h:379
grk_compress
GRK_API bool GRK_CALLCONV grk_compress(grk_codec codec)
Encode an image into a JPEG 2000 code stream.
Definition: grok.cpp:379
_grk_plugin_decompress_callback_info::l_stream
grk_stream * l_stream
Definition: grok.h:1855
_grk_component_mapping_comp::mapping_type
uint8_t mapping_type
Definition: grok.h:586
grk_packet_info
struct _grk_packet_info grk_packet_info
Packet info.
_grk_plugin_decompress_callback_info::full_image_y0
uint32_t full_image_y0
Definition: grok.h:1865
grk_image_destroy
GRK_API void GRK_CALLCONV grk_image_destroy(grk_image *image)
Deallocate all resources associated with an image.
Definition: grok.cpp:201
_grk_cparameters::res_spec
uint32_t res_spec
Definition: grok.h:494
_grk_header_info::xml_data
uint8_t * xml_data
Definition: grok.h:666
_grk_tile_index::current_tpsno
uint32_t current_tpsno
current tile-part index
Definition: grok.h:1144
GRK_CODEC_JP2
@ GRK_CODEC_JP2
JP2 file format : read/write.
Definition: grok.h:347
grk_plugin_cleanup
GRK_API void GRK_CALLCONV grk_plugin_cleanup(void)
Release plugin resources.
Definition: grok.cpp:646
grk_deinitialize
GRK_API void GRK_CALLCONV grk_deinitialize()
De-initialize library.
Definition: grok.cpp:66
_grk_codestream_index::codestream_size
uint64_t codestream_size
code stream's size
Definition: grok.h:1164
_grk_plugin_decompress_callback_info::input_file_name
const char * input_file_name
Definition: grok.h:1849
_grk_codestream_index::marknum
uint32_t marknum
number of markers
Definition: grok.h:1166
GRK_COMPONENT_TYPE_COLOUR
@ GRK_COMPONENT_TYPE_COLOUR
Definition: grok.h:838
GRK_J2K_MAXBANDS
#define GRK_J2K_MAXBANDS
Maximum number of sub-bands.
Definition: grok.h:83
_grk_tile_info::marknum
uint32_t marknum
number of markers
Definition: grok.h:1004
_grk_decompress_params::split_pnm
bool split_pnm
Definition: grok.h:776
grk_decompress
bool GRK_CALLCONV grk_decompress(grk_codec p_codec, grk_plugin_tile *tile, grk_image *p_image)
Decompress image from a JPEG 2000 code stream.
Definition: grok.cpp:270
_grk_codestream_info_v2::ty0
uint32_t ty0
tile origin in y = YTOsiz
Definition: grok.h:1106
_grk_plugin_decompress_callback_info::header_info
grk_header_info header_info
Definition: grok.h:1857
grk::get_mem_stream_offset
size_t get_mem_stream_offset(grk_stream *stream)
Definition: MemStream.cpp:127
grk_plugin_get_debug_state
uint32_t GRK_CALLCONV grk_plugin_get_debug_state()
Get debug state of plugin.
Definition: grok.cpp:633
grk_read_header
bool GRK_CALLCONV grk_read_header(grk_codec p_codec, grk_header_info *header_info, grk_image **p_image)
Decompress JPEG 2000 header.
Definition: grok.cpp:259
_grk_palette_data::num_entries
uint16_t num_entries
Definition: grok.h:595
_grk_header_info::comment_len
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:670
grk_plugin_internal_decode_callback
int32_t grk_plugin_internal_decode_callback(PluginDecodeCallbackInfo *info)
Definition: grok.cpp:754
plugin_decode_method_name
static const char * plugin_decode_method_name
Definition: grok.cpp:589
_grk_marker_info::len
uint32_t len
length, marker value included
Definition: grok.h:973
GRK_CODEC_J2K
@ GRK_CODEC_J2K
JPEG 2000 code stream : read/write.
Definition: grok.h:346
_grk_image_comp::association
GRK_COMPONENT_ASSOC association
Definition: grok.h:884
_grk_image::capture_resolution
double capture_resolution[2]
Definition: grok.h:909
_grk_decompress_params::core
grk_dparameters core
core library parameters
Definition: grok.h:744
_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:634
_grk_poc::prcE
uint64_t prcE
Definition: grok.h:398
_grk_image_comp::type
GRK_COMPONENT_TYPE type
Definition: grok.h:883
_grk_plugin_band::orientation
uint8_t orientation
Definition: grok.h:1218
grk_plugin_compress
int32_t GRK_CALLCONV grk_plugin_compress(grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
Compress with plugin.
Definition: grok.cpp:684
grk_end_decompress
GRK_API bool GRK_CALLCONV grk_end_decompress(grk_codec codec)
End decompression.
Definition: grok.cpp:403
grk_plugin_batch_compress
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.
Definition: grok.cpp:699
_grk_tile_info::end_header
uint64_t end_header
end position of the header
Definition: grok.h:988
grk_init_decompress
bool GRK_CALLCONV grk_init_decompress(grk_codec p_codec, grk_dparameters *parameters)
Set up the decompressor with decompress parameters.
Definition: grok.cpp:249
_grk_tile_index
Tile index info.
Definition: grok.h:1136
grk_compress
bool GRK_CALLCONV grk_compress(grk_codec p_codec)
Encode an image into a JPEG 2000 code stream.
Definition: grok.cpp:379
grk_plugin_batch_decompress
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress(void)
Batch decompress.
Definition: grok.cpp:817
grk_destroy_cstr_index
void GRK_CALLCONV grk_destroy_cstr_index(grk_codestream_index **p_cstr_index)
Destroy code stream index.
Definition: grok.cpp:492
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:1142
_grk_plugin_pass::length
size_t length
Definition: grok.h:1185
_grk_image::has_display_resolution
bool has_display_resolution
Definition: grok.h:910
grk_destroy_codec
GRK_API void GRK_CALLCONV grk_destroy_codec(grk_codec codec)
Destroy codec.
Definition: grok.cpp:450
_grk_plugin_init_info::deviceId
int32_t deviceId
Definition: grok.h:1779
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:658
GRK_CLRSPC_UNKNOWN
@ GRK_CLRSPC_UNKNOWN
unknown
Definition: grok.h:319
_grk_cparameters::numpocs
uint32_t numpocs
number of progression order changes (POCs), default to 0
Definition: grok.h:467
_grk_cparameters::cp_num_comments
size_t cp_num_comments
Definition: grok.h:459
grk_codestream_info_v2
struct _grk_codestream_info_v2 grk_codestream_info_v2
Code stream info v2.
_grk_palette_data::channel_prec
uint8_t * channel_prec
Definition: grok.h:599
_grk_component_mapping_comp::palette_column
uint8_t palette_column
Definition: grok.h:587
grk_stream_read_fn
size_t(* grk_stream_read_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:803
grk_set_warning_handler
bool GRK_CALLCONV grk_set_warning_handler(grk_msg_callback p_callback, void *p_user_data)
Set warning handler.
Definition: grok.cpp:81
_grk_header_info::tcp_numlayers
uint16_t tcp_numlayers
number of layers
Definition: grok.h:662
grk_plugin_load
GRK_API bool GRK_CALLCONV grk_plugin_load(grk_plugin_load_info info)
Load plugin.
Definition: grok.cpp:605
GRK_JP2_FMT
@ GRK_JP2_FMT
Definition: grok.h:62
_grk_tile_index::tileno
uint16_t tileno
tile index
Definition: grok.h:1138
grk_asoc
struct grk_asoc grk_asoc
_grk_decompress_params::upsample
bool upsample
Definition: grok.h:774
grk_plugin_tile_component::resolutions
grk_plugin_resolution ** resolutions
Definition: grok.h:1238
_grk_codestream_info_v2::t_grid_height
uint32_t t_grid_height
number of tiles in Y
Definition: grok.h:1114
grk_plugin_decompress
int32_t GRK_CALLCONV grk_plugin_decompress(grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
Decompress with plugin.
Definition: grok.cpp:783
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.
Definition: BufferedStream.cpp:446
grk::minpf_cleanup_plugin_manager
void minpf_cleanup_plugin_manager(void)
Definition: minpf_plugin_manager.cpp:110
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.
Definition: grok.cpp:305
grk::CodeStream
Definition: CodeStream.h:164
grk_asoc::xml
uint8_t * xml
Definition: grok.h:616
grk::logger::warning_handler
grk_msg_callback warning_handler
Definition: logger.h:28
_grk_poc::resno0
uint8_t resno0
Resolution num start, component num start, given by POC.
Definition: grok.h:374
grk_image_create
GRK_API grk_image *GRK_CALLCONV grk_image_create(uint16_t numcmpts, grk_image_cmptparm *cmptparms, GRK_COLOR_SPACE clrspc, bool allocData)
Create image.
Definition: grok.cpp:145
_grk_codestream_info::main_head_start
uint64_t main_head_start
main header position
Definition: grok.h:1036
_grk_cparameters::ty0
uint32_t ty0
YTOsiz.
Definition: grok.h:446
grk_prec_mode
grk_prec_mode
Precision mode.
Definition: grok.h:725
GRK_API
#define GRK_API
Definition: grok.h:47
_grk_plugin_decompress_callback_info::user_data
void * user_data
Definition: grok.h:1866
_grk_decompress_params::compressionLevel
uint32_t compressionLevel
Definition: grok.h:782
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:959
grk_set_decompress_window
GRK_API bool GRK_CALLCONV grk_set_decompress_window(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.
Definition: grok.cpp:280
_grk_image_comp
Image component.
Definition: grok.h:859
_grk_decompress_params::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:748
grk_asoc::label
const char * label
Definition: grok.h:615
grk_plugin_stop_batch_compress
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress(void)
Stop batch compress.
Definition: grok.cpp:734
_grk_header_info::comment
char * comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:669
_grk_image_comptparm::dx
uint32_t dx
XRsiz: horizontal separation of a sample of component with respect to the reference grid.
Definition: grok.h:924
_grk_poc::tyS
uint32_t tyS
Definition: grok.h:400
_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:863
_grk_image::iptc_buf
uint8_t * iptc_buf
Definition: grok.h:912
plugin_get_debug_state_method_name
static const char * plugin_get_debug_state_method_name
Definition: grok.cpp:581
_grk_poc::ty0_t
uint32_t ty0_t
Definition: grok.h:405
_grk_tile_index::marknum
uint32_t marknum
number of markers
Definition: grok.h:1148
_grk_dparameters
Core decompress parameters.
Definition: grok.h:681
_grk_poc::prc_t
uint64_t prc_t
Definition: grok.h:406
grk_stream_create_mem_stream
grk_stream *GRK_CALLCONV grk_stream_create_mem_stream(uint8_t *buf, size_t len, bool ownsBuffer, bool is_read_stream)
Create stream from buffer.
Definition: grok.cpp:549
grk_deinitialize
GRK_API void GRK_CALLCONV grk_deinitialize()
De-initialize library.
Definition: grok.cpp:66
GRK_CODEC_UNKNOWN
@ GRK_CODEC_UNKNOWN
place-holder
Definition: grok.h:345
ojph::local::decode_vlc_init_tables
bool decode_vlc_init_tables()
Initializes vlc_tbl0 and vlc_tbl1 tables, from table0.h and table1.h.
Definition: ojph_block_decoder.cpp:585
_grk_poc::layno1
uint16_t layno1
Layer num end, resolution num end, component num end, given by POC.
Definition: grok.h:377
_grk_cparameters::tx0
uint32_t tx0
XTOsiz.
Definition: grok.h:444
GRK_COMPONENT_TYPE_UNSPECIFIED
@ GRK_COMPONENT_TYPE_UNSPECIFIED
Definition: grok.h:841
_grk_plugin_code_block::compressedDataLength
uint32_t compressedDataLength
Definition: grok.h:1199
grk_destroy_codec
void GRK_CALLCONV grk_destroy_codec(grk_codec p_codec)
Destroy codec.
Definition: grok.cpp:450
_grk_component_mapping_comp
Component mappings: component index, mapping type, palette column.
Definition: grok.h:584
_grk_decompress_params::nb_precision
uint32_t nb_precision
Definition: grok.h:770
_grk_packet_info::disto
double disto
packet distortion
Definition: grok.h:961
grk::GRK_COMP_PARAM_DEFAULT_CBLOCKW
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKW
Definition: CodeStream.h:40
grk_tccp_info
struct _grk_tccp_info grk_tccp_info
Component coding parameters info.
ThreadPool::instance
static ThreadPool * instance(uint32_t numthreads)
Definition: ThreadPool.hpp:54
GRK_RPCL
@ GRK_RPCL
resolution-precinct-component-layer order
Definition: grok.h:293
_grk_cparameters::framerate
int framerate
Definition: grok.h:540
grk_plugin_decompress_callback_info
struct _grk_plugin_decompress_callback_info grk_plugin_decompress_callback_info
_grk_codestream_info_v2
Code stream info v2.
Definition: grok.h:1101
_grk_cparameters::rsiz
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition: grok.h:539
_grk_raw_cparameters::sgnd
bool sgnd
signed/unsigned raw image
Definition: grok.h:431
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.
Definition: grok.cpp:699
grk_plugin_tile_component
struct grk_plugin_tile_component grk_plugin_tile_component
Plugin tile component.
grk_initialize
bool GRK_CALLCONV grk_initialize(const char *plugin_path, uint32_t numthreads)
Initialize library.
Definition: grok.cpp:52
_grk_cparameters::deviceId
int32_t deviceId
Definition: grok.h:555
GRK_SUPPORTED_FILE_FMT
GRK_SUPPORTED_FILE_FMT
Definition: grok.h:59
_grk_cparameters::verbose
bool verbose
Definition: grok.h:561
_grk_tile_index::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1152
_grk_image_comptparm::y0
uint32_t y0
y component offset compared to the whole image
Definition: grok.h:937
grk_set_error_handler
bool GRK_CALLCONV grk_set_error_handler(grk_msg_callback p_callback, void *p_user_data)
Set error handler.
Definition: grok.cpp:87
grk_plugin_compress_user_callback_info::compressBufferLen
size_t compressBufferLen
Definition: grok.h:1796
_GRK_CODEC_FORMAT
_GRK_CODEC_FORMAT
Supported codecs.
Definition: grok.h:344
funcPluginIsBatchComplete
PLUGIN_IS_BATCH_COMPLETE funcPluginIsBatchComplete
Definition: grok.cpp:718
grk_channel_description
struct _grk_channel_description grk_channel_description
Channel definition: channel index, type, association.
_grk_image_comp::sgnd
bool sgnd
Definition: grok.h:878
_grk_codestream_index::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1170
_grk_codestream_info::numdecompos
uint32_t * numdecompos
number of decomposition for each component
Definition: grok.h:1028
_grk_plugin_code_block::y1
uint32_t y1
Definition: grok.h:1194
_grk_poc::lay_t
uint16_t lay_t
Temporary values for Tile parts, initialized in pi_create_encode.
Definition: grok.h:402
grk_plugin_band
struct _grk_plugin_band grk_plugin_band
Plugin band.
grk_tp_index
struct _grk_tp_index grk_tp_index
Tile part index info.
grk_palette_data
struct _grk_palette_data grk_palette_data
Palette data.
grk_write_to_file
static size_t grk_write_to_file(void *p_buffer, size_t nb_bytes, FILE *p_file)
Definition: grok.cpp:106
_grk_codestream_index::nb_of_tiles
uint32_t nb_of_tiles
Definition: grok.h:1171
_grk_cparameters::cp_disto_alloc
bool cp_disto_alloc
allocation by rate/distortion
Definition: grok.h:452
_grk_codestream_info::D_max
double D_max
maximum distortion reduction on the whole image (add for Marcela)
Definition: grok.h:1018
grk_plugin_compress_user_callback_info::image
grk_image * image
Definition: grok.h:1793
_grk_palette_data::component_mapping
grk_component_mapping_comp * component_mapping
Definition: grok.h:596
_grk_tccp_info::cblkw
uint32_t cblkw
code-blocks width
Definition: grok.h:1056
grk::PluginDecodeCallbackInfo
Definition: plugin_interface.h:86
_grk_header_info::xml_data_len
size_t xml_data_len
Definition: grok.h:667
_grk_cparameters::numresolution
uint8_t numresolution
number of resolutions
Definition: grok.h:476
_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:896
_grk_tile_info::ph
uint32_t ph[GRK_J2K_MAXRLVLS]
precinct number for each resolution level (height)
Definition: grok.h:994
grk_asoc::xml_len
uint32_t xml_len
Definition: grok.h:617
_grk_tccp_info
Component coding parameters info.
Definition: grok.h:1048
GRK_ENUM_CLRSPC_GRAY
@ GRK_ENUM_CLRSPC_GRAY
Definition: grok.h:336
GRK_NUM_COMMENTS_SUPPORTED
#define GRK_NUM_COMMENTS_SUPPORTED
Definition: grok.h:350
_grk_prec
Precision.
Definition: grok.h:732
grk_compress_with_plugin
bool GRK_CALLCONV grk_compress_with_plugin(grk_codec p_info, grk_plugin_tile *tile)
Encode an image into a JPEG 2000 code stream using plugin.
Definition: grok.cpp:382
GRK_PROFILE_NONE
#define GRK_PROFILE_NONE
JPEG 2000 Profiles, see Table A.10 from 15444-1 (updated in various AMDs)
Definition: grok.h:123
get_path_separator
static const char * get_path_separator()
Definition: grok.cpp:596
_grk_cparameters::tp_flag
uint8_t tp_flag
Flag for tile part generation.
Definition: grok.h:524
_grk_poc::tx1
uint32_t tx1
Definition: grok.h:390
GRK_PCRL
@ GRK_PCRL
precinct-component-resolution-layer order
Definition: grok.h:294
_grk_header_info::ty0
uint32_t ty0
YTOsiz.
Definition: grok.h:652
GRK_CLRSPC_DEFAULT_CIE
@ GRK_CLRSPC_DEFAULT_CIE
default CIE LAB
Definition: grok.h:325
grk
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: BitIO.cpp:23
_grk_codestream_info::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1034
_grk_poc::layno0
uint16_t layno0
Layer num start,precinct num start, precinct num end.
Definition: grok.h:381
GRK_RAWL_FMT
@ GRK_RAWL_FMT
Definition: grok.h:70
ThreadPool::singleton_mutex
static std::mutex singleton_mutex
Definition: ThreadPool.hpp:93
plugin_is_batch_complete_method_name
static const char * plugin_is_batch_complete_method_name
Definition: grok.cpp:587
_grk_cparameters::mct_data
void * mct_data
Naive implementation of MCT restricted to a single reversible array based compressing without offset ...
Definition: grok.h:529
_grk_plugin_band
Plugin band.
Definition: grok.h:1217
_grk_plugin_code_block::x1
uint32_t x1
Definition: grok.h:1194
grk_stream_free_user_data_fn
void(* grk_stream_free_user_data_fn)(void *user_data)
Definition: grok.h:822
GRK_JPG_FMT
@ GRK_JPG_FMT
Definition: grok.h:71
_grk_header_info::isBinaryComment
bool isBinaryComment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:671
_grk_cparameters::repeats
uint32_t repeats
Definition: grok.h:558
_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:998
_grk_plugin_code_block::compressedData
uint8_t * compressedData
Definition: grok.h:1198
grk_plugin_compress_user_callback_info::outputFileNameIsRelative
bool outputFileNameIsRelative
Definition: grok.h:1790
_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:1118
_grk_cparameters::image_offset_x0
uint32_t image_offset_x0
subimage compressing: origin image offset in x direction
Definition: grok.h:504
_grk_poc::layE
uint16_t layE
End value, initialized in pi_initialise_encode.
Definition: grok.h:395
GRK_RAW_FMT
@ GRK_RAW_FMT
Definition: grok.h:68
grk_image_cmptparm
struct _grk_image_comptparm grk_image_cmptparm
Image component parameters.
_grk_image::has_capture_resolution
bool has_capture_resolution
Definition: grok.h:908
_grk_tccp_info::numresolutions
uint32_t numresolutions
number of resolutions
Definition: grok.h:1054
grk_version
GRK_API const char *GRK_CALLCONV grk_version(void)
library version
Definition: grok.cpp:140
GRK_ENUM_CLRSPC_UNKNOWN
@ GRK_ENUM_CLRSPC_UNKNOWN
Definition: grok.h:332
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.
Definition: grok.cpp:412
_grk_plugin_code_block::numPasses
size_t numPasses
Definition: grok.h:1201
grk_image_create
grk_image *GRK_CALLCONV grk_image_create(uint16_t numcmpts, grk_image_cmptparm *cmptparms, GRK_COLOR_SPACE clrspc, bool allocData)
Create image.
Definition: grok.cpp:145
_grk_plugin_tile::tileComponents
grk_plugin_tile_component ** tileComponents
Definition: grok.h:1254
grk::logger::m_logger
static logger m_logger
Definition: logger.h:31
grk::grk_malloc
void * grk_malloc(size_t size)
Allocate an uninitialized memory block.
Definition: MemManager.cpp:105
grk_includes.h
plugin_stop_batch_encode_method_name
static const char * plugin_stop_batch_encode_method_name
Definition: grok.cpp:585
_grk_raw_cparameters::numcomps
uint16_t numcomps
number of components of the raw image
Definition: grok.h:427
_grk_image_comp::h
uint32_t h
data height
Definition: grok.h:869
_grk_cparameters::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:512
_grk_palette_data::num_channels
uint8_t num_channels
Definition: grok.h:597
_grk_channel_definition
Channel definitions and number of definitions.
Definition: grok.h:576
ThreadPool::hardware_concurrency
static uint32_t hardware_concurrency()
Definition: ThreadPool.hpp:65
_grk_cparameters::cp_is_binary_comment
bool cp_is_binary_comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:458
_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:996
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.
Definition: grok.cpp:569
GRK_CLRSPC_EYCC
@ GRK_CLRSPC_EYCC
extended YCC
Definition: grok.h:323
grk_plugin_stop_batch_compress
void GRK_CALLCONV grk_plugin_stop_batch_compress(void)
Stop batch compress.
Definition: grok.cpp:734
grk_image
struct _grk_image grk_image
Image.
_grk_header_info
Header info.
Definition: grok.h:623
_grk_plugin_decompress_callback_info::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
Definition: grok.h:1852
_grk_plugin_init_info::verbose
bool verbose
Definition: grok.h:1780
grk::GRK_COMP_PARAM_DEFAULT_CBLOCKH
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKH
Definition: CodeStream.h:41
_grk_cparameters::subsampling_dy
uint32_t subsampling_dy
subsampling value for dy
Definition: grok.h:510
_grk_cparameters::irreversible
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:487
grk::logger::m_info_data
void * m_info_data
Definition: logger.h:26
_grk_tile_info::tileno
uint16_t tileno
number of tile
Definition: grok.h:984
grk_plugin_compress_user_callback_info::tile
grk_plugin_tile * tile
Definition: grok.h:1794
ojph::local::encode_vlc_init_tables
bool encode_vlc_init_tables()
Definition: ojph_block_encoder.cpp:69
_grk_image_comp::data
int32_t * data
image component data
Definition: grok.h:880
_grk_header_info::t_grid_height
uint32_t t_grid_height
tile grid height
Definition: grok.h:660
_grk_image_comptparm::stride
uint32_t stride
Definition: grok.h:931
_grk_plugin_decompress_callback_info::error_code
unsigned int error_code
Definition: grok.h:1862
GRK_PLUGIN_STATE_NO_DEBUG
#define GRK_PLUGIN_STATE_NO_DEBUG
Definition: grok.h:1748
grk_end_compress
GRK_API bool GRK_CALLCONV grk_end_compress(grk_codec codec)
End to compress the current image.
Definition: grok.cpp:393
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.
Definition: grok.cpp:249
ojph::local::encode_uvlc_init_tables
bool encode_uvlc_init_tables()
Definition: ojph_block_encoder.cpp:189
_grk_image::iptc_len
size_t iptc_len
Definition: grok.h:913
_grk_poc::precno0
uint64_t precno0
Definition: grok.h:382
_grk_poc::prg1
GRK_PROG_ORDER prg1
Progression order enum.
Definition: grok.h:384
grk::minpf_get_plugin_manager
minpf_plugin_manager * minpf_get_plugin_manager(void)
Definition: minpf_plugin_manager.cpp:98
grk_stream_seek_fn
bool(* grk_stream_seek_fn)(uint64_t nb_bytes, void *user_data)
Definition: grok.h:817
_grk_cparameters::tcp_distoratio
double tcp_distoratio[100]
different psnr for successive layers
Definition: grok.h:474
_grk_decompress_params::numThreads
uint32_t numThreads
Definition: grok.h:788
_grk_raw_comp_cparameters::dx
uint32_t dx
subsampling in X direction
Definition: grok.h:413
GRK_PROFILE_PART2
#define GRK_PROFILE_PART2
Definition: grok.h:142
_grk_marker_info::pos
uint64_t pos
position in code stream
Definition: grok.h:971
_grk_dparameters::flags
uint32_t flags
Definition: grok.h:719
_grk_cparameters::tcp_numlayers
uint16_t tcp_numlayers
number of layers
Definition: grok.h:469
grk::PLUGIN_IS_BATCH_COMPLETE
bool(* PLUGIN_IS_BATCH_COMPLETE)(void)
Definition: plugin_interface.h:80
_grk_cparameters::writeTLM
bool writeTLM
Definition: grok.h:560
_grk_header_info::irreversible
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:629
grk_plugin_init
GRK_API bool GRK_CALLCONV grk_plugin_init(grk_plugin_init_info initInfo)
Initialize plugin.
Definition: grok.cpp:650
plugin_stop_batch_decode_method_name
static const char * plugin_stop_batch_decode_method_name
Definition: grok.cpp:593
_grk_plugin_decompress_callback_info
Definition: grok.h:1846
grk_read_header
GRK_API bool GRK_CALLCONV grk_read_header(grk_codec codec, grk_header_info *header_info, grk_image **image)
Decompress JPEG 2000 header.
Definition: grok.cpp:259
_grk_decompress_params::duration
uint32_t duration
Definition: grok.h:784
userEncodeCallback
GRK_PLUGIN_COMPRESS_USER_CALLBACK userEncodeCallback
Definition: grok.cpp:667
grk_read_from_file
static size_t grk_read_from_file(void *p_buffer, size_t nb_bytes, FILE *p_file)
Definition: grok.cpp:95
_grk_tile_info::packet
grk_packet_info * packet
information concerning packets inside tile
Definition: grok.h:1000
_grk_channel_description
Channel definition: channel index, type, association.
Definition: grok.h:567
plugin_encode_method_name
static const char * plugin_encode_method_name
Definition: grok.cpp:583
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::GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION
const uint32_t GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION
Definition: CodeStream.h:43
_grk_image::xmp_len
size_t xmp_len
Definition: grok.h:915
grk_create_decompress
grk_codec GRK_CALLCONV grk_create_decompress(GRK_CODEC_FORMAT p_format, grk_stream *stream)
Create J2K/JP2 decompression structure.
Definition: grok.cpp:219
_grk_poc::ty1
uint32_t ty1
Definition: grok.h:390
_grk_codestream_info::packno
uint32_t packno
packet number
Definition: grok.h:1020
_grk_prec::prec
uint8_t prec
Definition: grok.h:733
pluginLoaded
bool pluginLoaded
Definition: grok.cpp:604
_grk_image_comp::x0
uint32_t x0
x component offset compared to the whole image
Definition: grok.h:871
_grk_cparameters::tcp_mct
uint8_t tcp_mct
MCT (multiple component transform)
Definition: grok.h:526
_grk_tccp_info::csty
uint8_t csty
coding style
Definition: grok.h:1052
_grk_raw_cparameters::comps
grk_raw_comp_cparameters * comps
raw components parameters
Definition: grok.h:433
_grk_raw_cparameters::width
uint32_t width
width of the raw image
Definition: grok.h:423
ThreadPool::release
static void release()
Definition: ThreadPool.hpp:60
_grk_marker_info
Marker info.
Definition: grok.h:967
grk_destroy_cstr_info
void GRK_CALLCONV grk_destroy_cstr_info(grk_codestream_info_v2 **cstr_info)
Destroy Codestream information after compression or decompression.
Definition: grok.cpp:476
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.
Definition: grok.cpp:799
_grk_dparameters::DA_x1
uint32_t DA_x1
Decompress window right boundary.
Definition: grok.h:708
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.
Definition: BufferedStream.cpp:455
_grk_header_info::cblockw_init
uint32_t cblockw_init
initial code block width, default to 64
Definition: grok.h:625
_grk_plugin_precinct::numBlocks
uint64_t numBlocks
Definition: grok.h:1210
_grk_image_comp::Xcrg
uint16_t Xcrg
Definition: grok.h:875
_grk_image::color_space
GRK_COLOR_SPACE color_space
color space: sRGB, Greyscale or YUV
Definition: grok.h:904
grk_channel_definition
struct _grk_channel_definition grk_channel_definition
Channel definitions and number of definitions.
_grk_poc::resE
uint8_t resE
Definition: grok.h:396
grk_stream_create_mapped_file_stream
grk_stream *GRK_CALLCONV grk_stream_create_mapped_file_stream(const char *fname, bool read_stream)
Create mapped file stream.
Definition: grok.cpp:553
GROK_INIT_DECOMPRESSORS
int(* GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info, grk_image *image)
Definition: grok.h:1843
_grk_decompress_params::DA_y0
uint32_t DA_y0
Decompress window up boundary.
Definition: grok.h:760
GRK_PREC_MODE_CLIP
@ GRK_PREC_MODE_CLIP
Definition: grok.h:726
_grk_cparameters::POC
grk_poc POC[32]
progression order changes
Definition: grok.h:465
grk_set_info_handler
GRK_API bool GRK_CALLCONV grk_set_info_handler(grk_msg_callback p_callback, void *user_data)
Set info handler.
Definition: grok.cpp:74
_grk_decompress_params::DA_x0
uint32_t DA_x0
Decompress window left boundary.
Definition: grok.h:756
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)
Set up the compressor parameters using the current image and user parameters.
Definition: grok.cpp:358
_grk_poc::resS
uint8_t resS
Start value, initialized in pi_initialise_encode.
Definition: grok.h:392
_grk_plugin_decompress_callback_info::l_codec
grk_codec l_codec
Definition: grok.h:1856
_grk_tccp_info::prcw
uint32_t prcw[GRK_J2K_MAXRLVLS]
precinct width
Definition: grok.h:1074
grk_plugin_compress_user_callback_info::input_file_name
const char * input_file_name
Definition: grok.h:1789
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.
Definition: grok.cpp:270
GRK_UNUSED
#define GRK_UNUSED(x)
Definition: grk_includes.h:150
_grk_tile_v2_info
Tile coding parameter info.
Definition: grok.h:1082
GRK_CPRL
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:295
_grk_poc::ty0
uint32_t ty0
Definition: grok.h:390
GRK_COMPONENT_ASSOC_UNASSOCIATED
@ GRK_COMPONENT_ASSOC_UNASSOCIATED
Definition: grok.h:852
_grk_tile_info::num_tps
uint32_t num_tps
number of tile parts
Definition: grok.h:1010
_grk_cparameters::max_cs_size
uint64_t max_cs_size
Maximum size (in bytes) for the whole code stream.
Definition: grok.h:536
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.
Definition: grok.cpp:543
_grk_packet_info
Packet info.
Definition: grok.h:953
_grk_poc::tyE
uint32_t tyE
Definition: grok.h:400
_grk_codestream_info::codestream_size
uint64_t codestream_size
code stream's size
Definition: grok.h:1040
grk_stream_write_fn
size_t(* grk_stream_write_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:811
grk::minpf_get_dynamic_library_extension
const char * minpf_get_dynamic_library_extension(void)
Definition: minpf_plugin_manager.cpp:74
_grk_cparameters::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:502
_grk_cparameters::cblockw_init
uint32_t cblockw_init
initial code block width (default to 64)
Definition: grok.h:478
_grk_plugin_load_info::plugin_path
const char * plugin_path
Definition: grok.h:1732
_grk_poc::txE
uint32_t txE
Definition: grok.h:400
grk_cparameters
struct _grk_cparameters grk_cparameters
Compress parameters.
grk_stream
void * grk_stream
Definition: grok.h:827
grk_dparameters
struct _grk_dparameters grk_dparameters
Core decompress parameters.
_grk_plugin_resolution::numBands
size_t numBands
Definition: grok.h:1229
_grk_plugin_decompress_callback_info::decompressor_parameters
grk_decompress_parameters * decompressor_parameters
Definition: grok.h:1858
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:454
grk_stream_destroy
GRK_API void GRK_CALLCONV grk_stream_destroy(grk_stream *stream)
Destroy a stream created by grk_create_stream.
Definition: BufferedStream.cpp:429
_grk_codestream_info_v2::t_height
uint32_t t_height
tile size in y = YTsiz
Definition: grok.h:1110
_grk_plugin_decompress_callback_info::init_decompressors_func
GROK_INIT_DECOMPRESSORS init_decompressors_func
Definition: grok.h:1848
_grk_image_comptparm::x0
uint32_t x0
x component offset compared to the whole image
Definition: grok.h:935
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.
Definition: grok.cpp:437
_GRK_COLOR_SPACE
_GRK_COLOR_SPACE
Supported image color spaces.
Definition: grok.h:318
_grk_cparameters::infile
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:500
_grk_poc::comp_t
uint16_t comp_t
Definition: grok.h:404
grk::create_mem_stream
grk_stream * create_mem_stream(uint8_t *buf, size_t len, bool ownsBuffer, bool is_read_stream)
Definition: MemStream.cpp:138
_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:861
_grk_plugin_band::stepsize
float stepsize
Definition: grok.h:1221
GRK_PNG_FMT
@ GRK_PNG_FMT
Definition: grok.h:69
grk_codec_private
Main codec handler used for compression or decompression.
Definition: grok.cpp:41
_grk_plugin_tile::decompress_flags
uint32_t decompress_flags
Definition: grok.h:1252
grk_stream_create_mapped_file_stream
GRK_API grk_stream *GRK_CALLCONV grk_stream_create_mapped_file_stream(const char *fname, bool read_stream)
Create mapped file stream.
Definition: grok.cpp:553
_grk_tile_info::distotile
double distotile
Definition: grok.h:1002
_grk_tile_v2_info::prg
GRK_PROG_ORDER prg
progression order
Definition: grok.h:1088
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:1022
_grk_decompress_params::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format 0: J2K, 1: JP2
Definition: grok.h:750
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:1104
grk::ICodeStream
Definition: CodeStream.h:125
GRK_IS_PART2
#define GRK_IS_PART2(v)
Definition: grok.h:150
_grk_image::x1
uint32_t x1
Xsiz: width of the reference grid.
Definition: grok.h:898
grk_plugin_compress_user_callback_info::transferExifTags
bool transferExifTags
Definition: grok.h:1798
GRK_CLRSPC_ICC
@ GRK_CLRSPC_ICC
ICC profile.
Definition: grok.h:327
_grk_channel_definition::descriptions
grk_channel_description * descriptions
Definition: grok.h:577
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.
Definition: BufferedStream.cpp:440
grk::PLUGIN_STOP_BATCH_DECODE
void(* PLUGIN_STOP_BATCH_DECODE)(void)
Definition: plugin_interface.h:143
GRK_COMPONENT_ASSOC_COLOUR_2
@ GRK_COMPONENT_ASSOC_COLOUR_2
Definition: grok.h:850
_grk_dparameters::tile_index
uint16_t tile_index
tile number of the decompressed tile
Definition: grok.h:716
grk_plugin_is_batch_complete
GRK_API bool GRK_CALLCONV grk_plugin_is_batch_complete(void)
Check if batch job is complete.
Definition: grok.cpp:719
ojph_block_encoder.h
_grk_cparameters::cp_comment_len
uint16_t cp_comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:457
_grk_poc::tile
uint32_t tile
Tile number.
Definition: grok.h:388
_grk_channel_definition::num_channel_descriptions
uint16_t num_channel_descriptions
Definition: grok.h:578
_grk_tile_v2_info::numlayers
uint16_t numlayers
number of layers
Definition: grok.h:1090
_grk_jp2_color::icc_profile_buf
uint8_t * icc_profile_buf
Definition: grok.h:606
_grk_poc::precno1
uint64_t precno1
Definition: grok.h:382
_grk_tccp_info::cblk_sty
uint8_t cblk_sty
code block mode
Definition: grok.h:1060
_grk_jp2_color
ICC profile, palette, channel definition.
Definition: grok.h:605
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:520
grk_get_data_length_from_file
static uint64_t grk_get_data_length_from_file(FILE *p_file)
Definition: grok.cpp:100
_grk_dparameters::DA_y1
uint32_t DA_y1
Decompress window bottom boundary.
Definition: grok.h:712
_grk_tile_info::thresh
double * thresh
value of thresh for each layer by tile cfr.
Definition: grok.h:982
_grk_image_comptparm
Image component parameters.
Definition: grok.h:921
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.
Definition: grok.cpp:507
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.
Definition: grok.cpp:561
_grk_dparameters::cp_reduce
uint8_t cp_reduce
Set the number of highest resolution levels to be discarded.
Definition: grok.h:689
_grk_dparameters::DA_y0
uint32_t DA_y0
Decompress window up boundary.
Definition: grok.h:710
grk::PLUGIN_BATCH_ENCODE
int32_t(* PLUGIN_BATCH_ENCODE)(const char *input_dir, const char *output_dir, grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK userCallback)
Definition: plugin_interface.h:74
grk_end_decompress
bool GRK_CALLCONV grk_end_decompress(grk_codec p_codec)
End decompression.
Definition: grok.cpp:403
grk_plugin_tile_component::numResolutions
size_t numResolutions
Definition: grok.h:1237
_grk_plugin_pass::distortionDecrease
double distortionDecrease
Definition: grok.h:1183
_grk_tile_info::numpix
int64_t numpix
Definition: grok.h:1001
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.
Definition: grok.cpp:684
_grk_dparameters::infile
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:698
_grk_image_comp::Ycrg
uint16_t Ycrg
Definition: grok.h:875
_grk_plugin_init_info
Definition: grok.h:1778
_grk_tile_info::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1006
_grk_codestream_info::numlayers
uint32_t numlayers
number of layer
Definition: grok.h:1026
_grk_cparameters::isHT
bool isHT
Definition: grok.h:484
_grk_plugin_decompress_callback_info::image
grk_image * image
Definition: grok.h:1859
_grk_cparameters::raw_cp
grk_raw_cparameters raw_cp
Definition: grok.h:515
_grk_cparameters::csty
uint8_t csty
csty : coding style
Definition: grok.h:461
grk_set_warning_handler
GRK_API bool GRK_CALLCONV grk_set_warning_handler(grk_msg_callback p_callback, void *user_data)
Set warning handler.
Definition: grok.cpp:81
_grk_tile_v2_info::csty
uint32_t csty
coding style
Definition: grok.h:1086
grk_decompress_tile
bool GRK_CALLCONV grk_decompress_tile(grk_codec p_codec, grk_image *p_image, uint16_t tile_index)
Decompress a specific tile.
Definition: grok.cpp:291
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:82
_grk_image
Image.
Definition: grok.h:890
_grk_header_info::tx0
uint32_t tx0
XTOsiz.
Definition: grok.h:650
_grk_cparameters::t_height
uint32_t t_height
YTsiz.
Definition: grok.h:450
grk_set_info_handler
bool GRK_CALLCONV grk_set_info_handler(grk_msg_callback p_callback, void *p_user_data)
Set info handler.
Definition: grok.cpp:74
_grk_tccp_info::qntsty
uint8_t qntsty
quantisation style
Definition: grok.h:1064
_grk_tile_index::tp_index
grk_tp_index * tp_index
information concerning tile parts
Definition: grok.h:1146
_grk_cparameters::cp_comment
char * cp_comment[GRK_NUM_COMMENTS_SUPPORTED]
comment for coding
Definition: grok.h:456
_grk_palette_data::lut
uint32_t * lut
Definition: grok.h:594
_grk_cparameters::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:514
_grk_cparameters
Compress parameters.
Definition: grok.h:440
grk_marker_info
struct _grk_marker_info grk_marker_info
Marker info.
_grk_plugin_resolution::level
size_t level
Definition: grok.h:1228
_grk_plugin_band::precincts
grk_plugin_precinct ** precincts
Definition: grok.h:1220
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.
Definition: BufferedStream.cpp:463
_grk_plugin_code_block::sortedIndex
unsigned int sortedIndex
Definition: grok.h:1203
grk::PLUGIN_INIT
bool(* PLUGIN_INIT)(grk_plugin_init_info initInfo)
Definition: plugin_interface.h:69
grk_asoc
Definition: grok.h:613
GRK_ENUM_CLRSPC_EYCC
@ GRK_ENUM_CLRSPC_EYCC
Definition: grok.h:338
GRK_COMPONENT_TYPE_OPACITY
@ GRK_COMPONENT_TYPE_OPACITY
Definition: grok.h:839
_grk_tp_index::end_header
uint64_t end_header
end position of the header
Definition: grok.h:1128
_grk_dparameters::DA_x0
uint32_t DA_x0
Decompress window left boundary.
Definition: grok.h:706
grk_initialize
GRK_API bool GRK_CALLCONV grk_initialize(const char *plugin_path, uint32_t numthreads)
Initialize library.
Definition: grok.cpp:52
is_plugin_initialized
static bool is_plugin_initialized
Definition: grok.cpp:51
_grk_plugin_tile::numComponents
size_t numComponents
Definition: grok.h:1253
_grk_codestream_info_v2::t_grid_width
uint32_t t_grid_width
number of tiles in X
Definition: grok.h:1112
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:1126
_grk_tccp_info::qmfbid
uint8_t qmfbid
discrete wavelet transform identifier
Definition: grok.h:1062
_grk_channel_description::cn
uint16_t cn
Definition: grok.h:568
_grk_image::y1
uint32_t y1
Ysiz: height of the reference grid.
Definition: grok.h:900
_grk_image_comp::prec
uint8_t prec
precision
Definition: grok.h:877
GRK_COMPONENT_ASSOC
GRK_COMPONENT_ASSOC
Definition: grok.h:846
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.
Definition: grok.cpp:543
_grk_image_comp::y0
uint32_t y0
y component offset compared to the whole image
Definition: grok.h:873
grk_set_default_decompress_params
void GRK_CALLCONV grk_set_default_decompress_params(grk_dparameters *parameters)
Initialize decompress parameters with default values.
Definition: grok.cpp:243
_grk_decompress_params::precision
grk_precision * precision
Definition: grok.h:769
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:482
_grk_decompress_params::indexfilename
char indexfilename[GRK_PATH_LEN]
index file name
Definition: grok.h:754
_grk_plugin_resolution
Plugin resolution.
Definition: grok.h:1227
GRK_RLCP
@ GRK_RLCP
resolution-layer-component-precinct order
Definition: grok.h:292
_grk_cparameters::numThreads
uint32_t numThreads
Definition: grok.h:554
decodeCallback
grk_plugin_decompress_callback decodeCallback
Definition: grok.cpp:751
_grk_cparameters::write_display_resolution
bool write_display_resolution
Definition: grok.h:549
grk::GRK_ERROR
void GRK_ERROR(const char *fmt,...)
Definition: logger.cpp:57
grk_set_decompress_window
bool GRK_CALLCONV grk_set_decompress_window(grk_codec p_codec, grk_image *p_image, uint32_t start_x, uint32_t start_y, uint32_t end_x, uint32_t end_y)
Set the given area to be decompressed.
Definition: grok.cpp:280
grk_plugin_compress_user_callback_info::compressBuffer
uint8_t * compressBuffer
Definition: grok.h:1795
_grk_poc::dy
uint32_t dy
Definition: grok.h:400
_grk_image_comp::owns_data
bool owns_data
Definition: grok.h:882
grk_plugin_resolution
struct _grk_plugin_resolution grk_plugin_resolution
Plugin resolution.
ojph::info
message_info info
Definition: ojph_message.cpp:50
_grk_channel_description::asoc
uint16_t asoc
Definition: grok.h:570
GRK_ENUM_COLOUR_SPACE
GRK_ENUM_COLOUR_SPACE
Definition: grok.h:331
grk_image_destroy
void GRK_CALLCONV grk_image_destroy(grk_image *image)
Deallocate all resources associated with an image.
Definition: grok.cpp:201
_grk_plugin_decompress_callback_info::plugin_owns_image
bool plugin_owns_image
Definition: grok.h:1860
_grk_dparameters::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:704
grk::plugin_encode_user_callback_info
Definition: plugin_interface.h:56
_grk_dparameters::m_verbose
bool m_verbose
Verbose mode.
Definition: grok.h:714
grk_set_default_compress_params
GRK_API void GRK_CALLCONV grk_set_default_compress_params(grk_cparameters *parameters)
Set compressing parameters to default values, that means :
Definition: grok.cpp:329
_grk_cparameters::image_offset_y0
uint32_t image_offset_y0
subimage compressing: origin image offset in y direction
Definition: grok.h:506
GRK_PAM_FMT
@ GRK_PAM_FMT
Definition: grok.h:65
_grk_codestream_index::tile_index
grk_tile_index * tile_index
Definition: grok.h:1172
_grk_tccp_info::stepsizes_mant
uint32_t stepsizes_mant[GRK_J2K_MAXBANDS]
stepsizes used for quantization
Definition: grok.h:1066
_grk_codestream_info::main_head_end
uint64_t main_head_end
main header position
Definition: grok.h:1038
_grk_poc::tx0
uint32_t tx0
Start and end values for tile width and height.
Definition: grok.h:390
grk_plugin_is_batch_complete
GRK_API bool GRK_CALLCONV grk_plugin_is_batch_complete(void)
Check if batch job is complete.
Definition: grok.cpp:719
_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:893