Grok  7.6.2
grok.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2020 Grok Image Compression Inc.
3  *
4  * This source code is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Affero General Public License, version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This source code is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Affero General Public License for more details.
12  *
13  * You should have received a copy of the GNU Affero General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  *
17  * This source code incorporates work covered by the BSD 2-clause license.
18  * Please see the LICENSE file in the root directory for details.
19  *
20  */
21 
22 #pragma once
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #include "grk_config.h"
29 #include <stdint.h>
30 #include <stdio.h>
31 #include <stdbool.h>
32 #include <limits.h>
33 
34 #ifdef __GNUC__
35 #define GRK_DEPRECATED(func) func __attribute__ ((deprecated))
36 #elif defined(_MSC_VER)
37 #define GRK_DEPRECATED(func) __declspec(deprecated) func
38 #else
39 #pragma message("WARNING: You need to implement DEPRECATED for this compiler")
40 #define GRK_DEPRECATED(func) func
41 #endif
42 
43 #if defined(GRK_STATIC) || !defined(_WIN32)
44 # if defined(GRK_STATIC) /* static library uses "hidden" */
45 # define GRK_API __attribute__ ((visibility ("hidden")))
46 # else
47 # define GRK_API __attribute__ ((visibility ("default")))
48 # endif
49 # define GRK_CALLCONV
50 #else
51 # define GRK_CALLCONV __stdcall
52 # if defined(GRK_EXPORTS) || defined(DLL_EXPORT)
53 # define GRK_API __declspec(dllexport)
54 # else
55 # define GRK_API __declspec(dllimport)
56 # endif
57 #endif
58 
68  GRK_RAW_FMT, /* MSB / Big Endian */
70  GRK_RAWL_FMT, /* LSB / Little Endian */
72 };
73 
74 #define GRK_PATH_LEN 4096
76 /*
77  * note: range for number of decomposition levels is 0-32
78  * So, accordingly, range for number of resolutions is 1-33
79  * */
80 
81 #define GRK_J2K_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_MAX_COMMENT_LENGTH (UINT16_MAX-2)
352 
359 typedef void (*grk_msg_callback)(const char *msg, void *client_data);
360 
361 /*
362  ==========================================================
363  codec structures
364  ==========================================================
365  */
366 
371 typedef struct _grk_poc {
373  uint8_t resno0;
374  uint16_t compno0;
376  uint16_t layno1;
377  uint8_t resno1;
378  uint16_t compno1;
380  uint16_t layno0;
381  uint64_t precno0, precno1;
385  char progorder[5];
387  uint32_t tile;
389  uint32_t tx0, tx1, ty0, ty1;
391  uint8_t resS;
392  uint16_t compS;
394  uint16_t layE;
395  uint8_t resE;
396  uint16_t compE;
397  uint64_t prcE;
399  uint32_t txS, txE, tyS, tyE, dx, dy;
401  uint16_t lay_t;
402  uint8_t res_t;
403  uint16_t comp_t;
404  uint32_t tx0_t, ty0_t;
405  uint64_t prc_t;
407 
412  uint32_t dx;
414  uint32_t dy;
417 
420 typedef struct _grk_raw_cparameters {
422  uint32_t width;
424  uint32_t height;
426  uint16_t numcomps;
428  uint8_t prec;
430  bool sgnd;
435 
439 typedef struct _grk_cparameters {
443  uint32_t tx0;
445  uint32_t ty0;
447  uint32_t t_width;
449  uint32_t t_height;
460  uint8_t csty;
466  uint32_t numpocs;
468  uint16_t tcp_numlayers;
471  double tcp_rates[100];
473  double tcp_distoratio[100];
475  uint8_t numresolution;
477  uint32_t cblockw_init;
479  uint32_t cblockh_init;
481  uint8_t cblk_sty;
482  /* flag for high throughput */
483  bool isHT;
489  int32_t roi_compno;
491  uint32_t roi_shift;
492  /* number of precinct size specifications */
493  uint32_t res_spec;
503  uint32_t image_offset_x0;
505  uint32_t image_offset_y0;
507  uint32_t subsampling_dx;
509  uint32_t subsampling_dy;
519  uint32_t max_comp_size;
521  uint8_t tp_on;
523  uint8_t tp_flag;
525  uint8_t tcp_mct;
528  void *mct_data;
535  uint64_t max_cs_size;
538  uint16_t rsiz;
540 
541  // set to true if input file stores capture resolution
544 
547 
550 
551  // 0: bisect with all truncation points, 1: bisect with only feasible truncation points
553  uint32_t numThreads;
554  int32_t deviceId;
555  uint32_t duration; //seconds
557  uint32_t repeats;
558  bool writePLT;
559  bool writeTLM;
560  bool verbose;
562 
566 typedef struct _grk_channel_description {
567  uint16_t cn;
568  uint16_t typ;
569  uint16_t asoc;
571 
575 typedef struct _grk_channel_definition {
579 
584  uint16_t component_index;
585  uint8_t mapping_type;
586  uint8_t palette_column;
588 
592 typedef struct _grk_palette_data {
593  uint32_t *lut;
594  uint16_t num_entries;
596  uint8_t num_channels;
598  uint8_t *channel_prec;
600 
604 typedef struct _grk_jp2_color {
605  uint8_t *icc_profile_buf;
606  uint32_t icc_profile_len;
611 
615 typedef struct _grk_header_info {
617  uint32_t cblockw_init;
619  uint32_t cblockh_init;
623  uint32_t mct;
626  uint16_t rsiz;
628  uint32_t numresolutions;
629  // coding style can be specified in main header COD segment,
630  // tile header COD segment, and tile component COC segment.
631  // !!! Assume that coding style does not vary across tile components !!!
632  uint8_t csty;
633  // code block style is specified in main header COD segment, and can
634  // be overridden in a tile header. !!! Assume that style does
635  // not vary across tiles !!!
636  uint8_t cblk_sty;
642  uint32_t tx0;
644  uint32_t ty0;
646  uint32_t t_width;
648  uint32_t t_height;
650  uint32_t t_grid_width;
652  uint32_t t_grid_height;
654  uint16_t tcp_numlayers;
655 
656  // note: xml_data will remain valid
657  // until codec is destroyed
658  uint8_t *xml_data;
659  size_t xml_data_len;
660  size_t num_comments;
664 
666 
670 typedef struct _grk_dparameters {
678  uint8_t cp_reduce;
685  uint16_t cp_layer;
695  uint32_t DA_x0;
697  uint32_t DA_x1;
699  uint32_t DA_y0;
701  uint32_t DA_y1;
703  bool m_verbose;
705  uint16_t tile_index;
708  uint32_t flags;
710 
714 typedef enum grk_prec_mode {
717 
721 typedef struct _grk_prec {
722  uint8_t prec;
725 
726 #define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)
727 
731 typedef struct _grk_decompress_params {
745  uint32_t DA_x0;
747  uint32_t DA_x1;
749  uint32_t DA_y0;
751  uint32_t DA_y1;
753  bool m_verbose;
755  uint16_t tile_index;
759  uint32_t nb_precision;
760  /* force output colorspace to RGB */
761  bool force_rgb;
762  /* upsample components according to their dx/dy values */
763  bool upsample;
764  /* split output components to different files */
765  bool split_pnm;
766  /* serialize XML metadata to disk */
768  uint32_t compression;
769  // compression "quality". Meaning of "quality" depends
770  // on file format we are writing to
772  int32_t deviceId;
773  uint32_t duration; //seconds
775  uint32_t repeats;
776  bool verbose;
777  uint32_t numThreads;
779 
780 typedef void *grk_codec;
781 
782 /*
783  ==========================================================
784  I/O stream typedef definitions
785  ==========================================================
786  */
787 
788 /*
789  * Callback function prototype for read function
790  *
791  */
792 typedef size_t (*grk_stream_read_fn)(void *p_buffer, size_t nb_bytes,
793  void *user_data);
794 
795 
796 
797 /*
798  * Callback function prototype for write function
799  */
800 typedef size_t (*grk_stream_write_fn)(void *p_buffer, size_t nb_bytes,
801  void *user_data);
802 
803 /*
804  * Callback function prototype for (absolute) seek function.
805  */
806 typedef bool (*grk_stream_seek_fn)(uint64_t nb_bytes, void *user_data);
807 
808 /*
809  * Callback function prototype for free user data function
810  */
811 typedef void (*grk_stream_free_user_data_fn)(void *user_data);
812 
813 /*
814  * JPEG 2000 stream.
815  */
816 typedef void *grk_stream;
817 
818 /*
819  ==============================
820  image typedef definitions
821  ==============================
822  */
823 
824 // component type
826 
831 
832 };
833 
834 // component association
836 
842 
843 };
844 
848 typedef struct _grk_image_comp {
850  uint32_t dx;
852  uint32_t dy;
854  uint32_t w;
856  uint32_t stride;
858  uint32_t h;
860  uint32_t x0;
862  uint32_t y0;
863  // component registration coordinates
864  uint16_t Xcrg, Ycrg;
866  uint8_t prec;
867  bool sgnd;
869  int32_t *data;
870  // if true, then image will manage data, otherwise up to caller
871  bool owns_data;
875 
879 typedef struct _grk_image {
882  uint32_t x0;
885  uint32_t y0;
887  uint32_t x1;
889  uint32_t y1;
891  uint16_t numcomps;
901  uint8_t *iptc_buf;
902  size_t iptc_len;
903  uint8_t *xmp_buf;
904  size_t xmp_len;
906 
910 typedef struct _grk_image_comptparm {
913  uint32_t dx;
916  uint32_t dy;
918  uint32_t w;
919  /* data stride */
920  uint32_t stride;
922  uint32_t h;
924  uint32_t x0;
926  uint32_t y0;
928  uint8_t prec;
930  bool sgnd;
932 
933 /*
934  ==========================================================
935  Information about the JPEG 2000 code stream
936  ==========================================================
937  */
938 
942 typedef struct _grk_packet_info {
944  uint64_t start_pos;
946  uint64_t end_ph_pos;
948  uint64_t end_pos;
950  double disto;
952 
956 typedef struct _grk_marker_info {
958  uint16_t type;
960  uint64_t pos;
962  uint32_t len;
964 
965 
969 typedef struct _grk_tile_info {
971  double *thresh;
973  uint16_t tileno;
975  uint64_t start_pos;
977  uint64_t end_header;
979  uint64_t end_pos;
981  uint32_t pw[GRK_J2K_MAXRLVLS];
983  uint32_t ph[GRK_J2K_MAXRLVLS];
990  int64_t numpix;
991  double distotile;
993  uint32_t marknum;
997  uint32_t maxmarknum;
999  uint32_t num_tps;
1001 
1005 typedef struct _grk_codestream_info {
1007  double D_max;
1009  uint32_t packno;
1011  uint32_t index_write;
1013  uint32_t numcomps;
1015  uint32_t numlayers;
1017  uint32_t *numdecompos;
1019  uint32_t marknum;
1023  uint32_t maxmarknum;
1027  uint64_t main_head_end;
1033 
1037 typedef struct _grk_tccp_info {
1039  uint32_t compno;
1041  uint8_t csty;
1043  uint32_t numresolutions;
1045  uint32_t cblkw;
1047  uint32_t cblkh;
1049  uint8_t cblk_sty;
1051  uint8_t qmfbid;
1053  uint8_t qntsty;
1059  uint8_t numgbits;
1061  uint32_t roishift;
1067 
1071 typedef struct _grk_tile_v2_info {
1073  uint16_t tileno;
1075  uint32_t csty;
1079  uint16_t numlayers;
1081  uint32_t mct;
1084 
1086 
1090 typedef struct _grk_codestream_info_v2 {
1091  /* Tile info */
1093  uint32_t tx0;
1095  uint32_t ty0;
1097  uint32_t t_width;
1099  uint32_t t_height;
1101  uint32_t t_grid_width;
1103  uint32_t t_grid_height;
1105  uint32_t nbcomps;
1109 
1113 typedef struct _grk_tp_index {
1115  uint64_t start_pos;
1117  uint64_t end_header;
1119  uint64_t end_pos;
1121 
1125 typedef struct _grk_tile_index {
1127  uint16_t tileno;
1129  uint32_t nb_tps;
1131  uint32_t current_nb_tps;
1133  uint32_t current_tpsno;
1137  uint32_t marknum;
1141  uint32_t maxmarknum;
1143 
1147 typedef struct _grk_codestream_index {
1151  uint64_t main_head_end;
1155  uint32_t marknum;
1159  uint32_t maxmarknum;
1160  uint32_t nb_of_tiles;
1163 
1165 // Structs to pass data between grok and plugin
1167 
1171 typedef struct _grk_plugin_pass {
1172  double distortionDecrease; //distortion decrease up to and including this pass
1173  size_t rate; // rate up to and including this pass
1174  size_t length; //stream length for this pass
1176 
1180 typedef struct _grk_plugin_code_block {
1182  // debug info
1183  uint32_t x0, y0, x1, y1;
1184  unsigned int *contextStream;
1186  uint32_t numPix;
1187  uint8_t *compressedData;
1190  size_t numPasses;
1192  unsigned int sortedIndex;
1194 
1198 typedef struct _grk_plugin_precinct {
1199  uint64_t numBlocks;
1202 
1206 typedef struct _grk_plugin_band {
1207  uint8_t orientation;
1208  uint64_t numPrecincts;
1210  float stepsize;
1212 
1216 typedef struct _grk_plugin_resolution {
1217  size_t level;
1218  size_t numBands;
1221 
1229 
1230 #define GRK_DECODE_HEADER (1 << 0)
1231 #define GRK_DECODE_T2 (1 << 1)
1232 #define GRK_DECODE_T1 (1 << 2)
1233 #define GRK_DECODE_POST_T1 (1 << 3)
1234 #define GRK_PLUGIN_DECODE_CLEAN (1 << 4)
1235 #define GRK_DECODE_ALL (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | GRK_DECODE_POST_T1)
1236 
1240 typedef struct _grk_plugin_tile {
1245 
1249 GRK_API const char* GRK_CALLCONV grk_version(void);
1250 
1257 GRK_API bool GRK_CALLCONV grk_initialize(const char *plugin_path,
1258  uint32_t numthreads);
1259 
1264 
1265 /*
1266  ============================
1267  image function definitions
1268  ============================
1269  */
1270 
1281 GRK_API grk_image* GRK_CALLCONV grk_image_create(uint16_t numcmpts,
1282  grk_image_cmptparm *cmptparms, GRK_COLOR_SPACE clrspc, bool allocData);
1283 
1290 
1291 
1298 
1305  grk_image_comp *image);
1306 
1307 /*
1308  =================================
1309  stream function definitions
1310  =================================
1311  */
1312 
1323 GRK_API grk_stream* GRK_CALLCONV grk_stream_create(size_t buffer_size,
1324  bool is_input);
1325 
1334 
1342  grk_stream_read_fn p_function);
1343 
1351  grk_stream_write_fn p_function);
1352 
1360  grk_stream_seek_fn p_function);
1361 
1370  void *data, grk_stream_free_user_data_fn p_function);
1371 
1379  uint64_t data_length);
1380 
1388  const char *fname, size_t buffer_size, bool is_read_stream);
1389 
1399  size_t buffer_len, bool ownsBuffer, bool is_read_stream);
1400 
1407  grk_stream *stream);
1408 
1416  const char *fname, bool read_stream);
1417 
1418 /*
1419  ========================================
1420  logger function definitions
1421  ========================================
1422  */
1430  void *user_data);
1438  void *user_data);
1446  void *user_data);
1447 
1448 
1458  grk_stream *stream);
1459 
1466  grk_dparameters *parameters);
1467 
1477  grk_dparameters *parameters);
1478 
1490  grk_header_info *header_info, grk_image **image);
1491 
1506  grk_image *image, uint32_t start_x, uint32_t start_y, uint32_t end_x,
1507  uint32_t end_y);
1508 
1517 GRK_API bool GRK_CALLCONV grk_decompress(grk_codec p_decompressor,
1518  grk_plugin_tile *tile, grk_image *image);
1519 
1530  grk_image *image, uint16_t tile_index);
1531 
1538 
1539 
1540 /* COMPRESSION FUNCTIONS*/
1541 
1550  grk_stream *stream);
1551 
1574  grk_cparameters *parameters);
1575 
1584  grk_cparameters *parameters, grk_image *image);
1585 
1593 
1601 
1623  uint16_t tile_index, uint8_t *data, uint64_t data_size);
1624 
1625 
1634  grk_plugin_tile *tile);
1635 
1636 
1642 
1643 
1650 
1651 
1657  grk_codestream_info_v2 **cstr_info);
1658 
1667 GRK_API void GRK_CALLCONV grk_dump_codec(grk_codec codec, uint32_t info_flag,
1668  FILE *output_stream);
1669 
1679  grk_codec codec);
1680 
1690 
1697  grk_codestream_index **p_cstr_index);
1698 
1710  float *pEncodingMatrix, int32_t *p_dc_shift, uint32_t pNbComp);
1711 
1712 /*****************
1713  Plugin Interface
1714  ******************/
1715 
1716 /*
1717  Plugin management
1718  */
1719 
1720 typedef struct _grk_plugin_load_info {
1721  const char *plugin_path;
1723 
1730 
1735 
1736 // No debug is done on plugin. Production setting.
1737 #define GRK_PLUGIN_STATE_NO_DEBUG 0x0
1738 
1739 /*
1740  For compress debugging, the plugin first performs a T1 compress.
1741  Then:
1742  1. perform host DWT on plugin MCT data, and write to host image
1743  This way, both plugin and host start from same point
1744  (assume MCT is equivalent for both host and plugin)
1745  2. map plugin DWT data, compare with host DWT, and then write to plugin image
1746  At this point in the code, the plugin image holds plugin DWT data. And if no warnings are triggered,
1747  then we can safely say that host and plugin DWT data are identical.
1748  3. Perform host compress, skipping MCT and DWT (they have already been performed)
1749  4. during host compress, each context that is formed is compared against context stream from plugin
1750  5. rate control - synch with plugin code stream, and compare
1751  6. T2 and store to disk
1752  */
1753 
1754 #define GRK_PLUGIN_STATE_DEBUG 0x1
1755 #define GRK_PLUGIN_STATE_PRE_TR1 0x2
1756 #define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4
1757 #define GRK_PLUGIN_STATE_MCT_ONLY 0x8
1758 
1763 
1764 /*
1765  Plugin compressing
1766  */
1767 typedef struct _grk_plugin_init_info {
1768  int32_t deviceId;
1769  bool verbose;
1771 
1776 
1778  const char *input_file_name;
1780  const char *output_file_name;
1784  uint8_t *compressBuffer;
1786  unsigned int error_code;
1788 
1791 
1799  grk_cparameters *compress_parameters,
1801 
1813 GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress(const char *input_dir,
1814  const char *output_dir, grk_cparameters *compress_parameters,
1816 
1821 
1826 
1827 /*
1828  Plugin decompression
1829  */
1830 
1831 typedef int (*GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info,
1832  grk_image *image);
1833 
1835  size_t deviceId;
1837  const char *input_file_name;
1838  const char *output_file_name;
1839  // input file format 0: J2K, 1: JP2
1841  // output file format 0: PGX, 1: PxM, 2: BMP etc
1850  unsigned int error_code;
1852  uint32_t full_image_x0;
1853  uint32_t full_image_y0;
1854  void* user_data;
1856 
1859 
1867  grk_decompress_parameters *decompress_parameters,
1869 
1881  const char *input_dir, const char *output_dir,
1882  grk_decompress_parameters *decompress_parameters,
1884 
1889 
1894 
1895 #ifdef __cplusplus
1896 }
1897 #endif
1898 
_grk_decompress_params
Decompress parameters.
Definition: grok.h:731
_grk_tile_index::nb_tps
uint32_t nb_tps
number of tile parts
Definition: grok.h:1129
GRK_COMPONENT_ASSOC_WHOLE_IMAGE
@ GRK_COMPONENT_ASSOC_WHOLE_IMAGE
Definition: grok.h:837
_grk_codestream_index
Code stream index info.
Definition: grok.h:1147
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:1065
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:981
_grk_cparameters::duration
uint32_t duration
Definition: grok.h:555
_grk_cparameters::t_width
uint32_t t_width
XTsiz.
Definition: grok.h:447
_grk_plugin_pass::rate
size_t rate
Definition: grok.h:1173
_grk_poc::compno0
uint16_t compno0
Definition: grok.h:374
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:685
_grk_image_comptparm::w
uint32_t w
data width
Definition: grok.h:918
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:735
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:1857
_grk_poc::dx
uint32_t dx
Definition: grok.h:399
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:1184
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:584
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:1781
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:410
_grk_cparameters::roi_compno
int32_t roi_compno
region of interest: affected component in [0..3]; -1 indicates no ROI
Definition: grok.h:489
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:1198
_grk_packet_info::start_pos
uint64_t start_pos
packet start position (including SOP marker if it exists)
Definition: grok.h:944
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:1838
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:707
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:772
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:552
_grk_poc::progorder
char progorder[5]
Progression order string.
Definition: grok.h:385
_grk_poc
Progression order changes.
Definition: grok.h:371
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:1852
_grk_tile_index::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1139
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:608
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:838
GRK_PXM_FMT
@ GRK_PXM_FMT
Definition: grok.h:63
_grk_dparameters::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:689
_grk_header_info::num_comments
size_t num_comments
Definition: grok.h:660
_grk_tile_info::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:997
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:609
_grk_raw_comp_cparameters::dy
uint32_t dy
subsampling in Y direction
Definition: grok.h:414
_grk_cparameters::display_resolution
double display_resolution[2]
Definition: grok.h:549
_grk_decompress_params::m_verbose
bool m_verbose
Verbose mode.
Definition: grok.h:753
_grk_poc::txS
uint32_t txS
Start and end values of tile width and height, initialized in pi_initialise_encode.
Definition: grok.h:399
_grk_plugin_decompress_callback_info::tile
grk_plugin_tile * tile
Definition: grok.h:1849
_grk_raw_cparameters
Definition: grok.h:420
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:623
_grk_plugin_code_block::y0
uint32_t y0
Definition: grok.h:1183
_grk_plugin_load_info
Definition: grok.h:1720
GRK_CLRSPC_CMYK
@ GRK_CLRSPC_CMYK
CMYK.
Definition: grok.h:324
_grk_plugin_resolution::band
grk_plugin_band ** band
Definition: grok.h:1219
_grk_cparameters::write_capture_resolution_from_file
bool write_capture_resolution_from_file
Definition: grok.h:542
_grk_header_info::cblk_sty
uint8_t cblk_sty
Definition: grok.h:636
_grk_image_comp::stride
uint32_t stride
data stride
Definition: grok.h:856
_grk_tccp_info::roishift
uint32_t roishift
Region Of Interest shift.
Definition: grok.h:1061
_grk_codestream_info::tile
grk_tile_info * tile
information regarding tiles inside image
Definition: grok.h:1031
GRK_PLUGIN_COMPRESS_USER_CALLBACK
bool(* GRK_PLUGIN_COMPRESS_USER_CALLBACK)(grk_plugin_compress_user_callback_info *info)
Definition: grok.h:1789
grk::FileFormat::free_color
static void free_color(grk_jp2_color *color)
Definition: FileFormat.cpp:2915
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:1073
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:1039
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:930
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:776
GRK_COMPONENT_ASSOC_COLOUR_3
@ GRK_COMPONENT_ASSOC_COLOUR_3
Definition: grok.h:840
_grk_image::color
grk_jp2_color color
Definition: grok.h:896
_grk_plugin_decompress_callback_info::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
Definition: grok.h:1842
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:825
_grk_poc::resno1
uint8_t resno1
Definition: grok.h:377
grk_plugin_compress_user_callback_info
Definition: grok.h:1777
_grk_decompress_params::repeats
uint32_t repeats
Definition: grok.h:775
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:1151
_grk_tile_v2_info::mct
uint32_t mct
multi-component transform identifier
Definition: grok.h:1081
_grk_image::display_resolution
double display_resolution[2]
Definition: grok.h:900
_grk_raw_cparameters::prec
uint8_t prec
bit depth of the raw image
Definition: grok.h:428
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:632
GRK_CLRSPC_SRGB
@ GRK_CLRSPC_SRGB
sRGB
Definition: grok.h:320
_grk_poc::compE
uint16_t compE
Definition: grok.h:396
grk::BufferedStream
Byte input-output stream.
Definition: BufferedStream.h:38
_grk_header_info::t_width
uint32_t t_width
XTsiz.
Definition: grok.h:646
_grk_codestream_info_v2::nbcomps
uint32_t nbcomps
number of components
Definition: grok.h:1105
_grk_cparameters::subsampling_dx
uint32_t subsampling_dx
subsampling value for dx
Definition: grok.h:507
_grk_plugin_decompress_callback_info::deviceId
size_t deviceId
Definition: grok.h:1835
_grk_image::comps
grk_image_comp * comps
image components
Definition: grok.h:895
_grk_poc::res_t
uint8_t res_t
Definition: grok.h:402
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:1057
ThreadPool::singleton
static ThreadPool * singleton
Definition: ThreadPool.hpp:92
_grk_cparameters::write_capture_resolution
bool write_capture_resolution
Definition: grok.h:545
_grk_cparameters::tcp_rates
double tcp_rates[100]
rates of layers, expressed as compression ratios.
Definition: grok.h:471
_grk_decompress_params::serialize_xml
bool serialize_xml
Definition: grok.h:767
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:1019
_grk_channel_description::typ
uint16_t typ
Definition: grok.h:568
_grk_tile_info::start_pos
uint64_t start_pos
start position
Definition: grok.h:975
_grk_image::xmp_buf
uint8_t * xmp_buf
Definition: grok.h:903
_grk_header_info::t_height
uint32_t t_height
YTsiz.
Definition: grok.h:648
_grk_tile_info
Tile info.
Definition: grok.h:969
_grk_dparameters::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:691
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:1097
grk_msg_callback
void(* grk_msg_callback)(const char *msg, void *client_data)
Callback function prototype for logging.
Definition: grok.h:359
GRK_NUM_PROGRESSION_ORDERS
@ GRK_NUM_PROGRESSION_ORDERS
Definition: grok.h:296
grk_codec
void * grk_codec
Definition: grok.h:780
_grk_decompress_params::force_rgb
bool force_rgb
Definition: grok.h:761
_grk_plugin_code_block
Plugin code block.
Definition: grok.h:1180
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:441
grk_plugin_compress_user_callback_info::output_file_name
const char * output_file_name
Definition: grok.h:1780
_grk_cparameters::cblockh_init
uint32_t cblockh_init
initial code block height (default to 64)
Definition: grok.h:479
_grk_cparameters::prog_order
GRK_PROG_ORDER prog_order
progression order (default GRK_LRCP)
Definition: grok.h:462
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:1149
_grk_decompress_params::compression
uint32_t compression
Definition: grok.h:768
_grk_decompress_params::tile_index
uint16_t tile_index
tile number of the decompressed tile
Definition: grok.h:755
_grk_plugin_code_block::numBitPlanes
size_t numBitPlanes
Definition: grok.h:1189
_grk_header_info::cblockh_init
uint32_t cblockh_init
initial code block height, default to 64
Definition: grok.h:619
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:497
_grk_tp_index
Tile part index info.
Definition: grok.h:1113
_grk_decompress_params::DA_y1
uint32_t DA_y1
Decompress window bottom boundary.
Definition: grok.h:751
_grk_plugin_decompress_callback_info::decompress_flags
uint32_t decompress_flags
Definition: grok.h:1851
ojph_block_decoder.h
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:916
_grk_cparameters::capture_resolution_from_file
double capture_resolution_from_file[2]
Definition: grok.h:543
_grk_image_comptparm::prec
uint8_t prec
precision
Definition: grok.h:928
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:747
_grk_codestream_info
Code stream info.
Definition: grok.h:1005
GRK_PREC_MODE_SCALE
@ GRK_PREC_MODE_SCALE
Definition: grok.h:715
_grk_raw_cparameters::height
uint32_t height
height of the raw image
Definition: grok.h:424
_grk_cparameters::tp_on
uint8_t tp_on
Tile part generation.
Definition: grok.h:521
_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:946
GRK_EXTENSION_MCT
#define GRK_EXTENSION_MCT
Definition: grok.h:149
grk::FileFormat
JPEG 2000 file format reader/writer.
Definition: FileFormat.h:132
_grk_palette_data
Palette data.
Definition: grok.h:592
_grk_plugin_pass
Plugin pass.
Definition: grok.h:1171
_grk_poc::prg
GRK_PROG_ORDER prg
Definition: grok.h:383
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:1047
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:1225
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:1059
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:1157
_grk_palette_data::channel_sign
bool * channel_sign
Definition: grok.h:597
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:1083
_grk_cparameters::prcw_init
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:495
_grk_image_comptparm::h
uint32_t h
data height
Definition: grok.h:922
_grk_image::numcomps
uint16_t numcomps
number of components in the image
Definition: grok.h:891
_grk_jp2_color::channel_definition
grk_channel_definition * channel_definition
Definition: grok.h:607
_grk_plugin_code_block::numPix
uint32_t numPix
Definition: grok.h:1186
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:1208
_grk_decompress_params::nb_tile_to_decompress
uint32_t nb_tile_to_decompress
Number of tiles to decompress.
Definition: grok.h:757
_grk_plugin_tile
Plugin tile.
Definition: grok.h:1240
_grk_codestream_info::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1021
_grk_poc::compS
uint16_t compS
Definition: grok.h:392
_grk_tile_info::end_pos
uint64_t end_pos
end position
Definition: grok.h:979
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:606
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:1191
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:958
_grk_cparameters::roi_shift
uint32_t roi_shift
region of interest: upshift value
Definition: grok.h:491
_grk_image_comp::w
uint32_t w
data width
Definition: grok.h:854
GRK_COMPONENT_TYPE_PREMULTIPLIED_OPACITY
@ GRK_COMPONENT_TYPE_PREMULTIPLIED_OPACITY
Definition: grok.h:829
_grk_prec::mode
grk_precision_mode mode
Definition: grok.h:723
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:1200
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:556
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:1119
_grk_cparameters::writePLT
bool writePLT
Definition: grok.h:558
_grk_header_info::prcw_init
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:638
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:1013
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:1786
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:404
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:640
_grk_decompress_params::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format 0: PGX, 1: PxM, 2: BMP
Definition: grok.h:741
_grk_header_info::numresolutions
uint32_t numresolutions
number of resolutions
Definition: grok.h:628
_grk_decompress_params::kernelBuildOptions
uint32_t kernelBuildOptions
Definition: grok.h:774
_grk_cparameters::capture_resolution
double capture_resolution[2]
Definition: grok.h:546
_grk_plugin_code_block::x0
uint32_t x0
Definition: grok.h:1183
_grk_poc::compno1
uint16_t compno1
Definition: grok.h:378
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:1843
_grk_component_mapping_comp::mapping_type
uint8_t mapping_type
Definition: grok.h:585
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:1853
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:493
_grk_header_info::xml_data
uint8_t * xml_data
Definition: grok.h:658
_grk_tile_index::current_tpsno
uint32_t current_tpsno
current tile-part index
Definition: grok.h:1133
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:1153
_grk_plugin_decompress_callback_info::input_file_name
const char * input_file_name
Definition: grok.h:1837
_grk_codestream_index::marknum
uint32_t marknum
number of markers
Definition: grok.h:1155
GRK_COMPONENT_TYPE_COLOUR
@ GRK_COMPONENT_TYPE_COLOUR
Definition: grok.h:827
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:993
_grk_decompress_params::split_pnm
bool split_pnm
Definition: grok.h:765
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:1095
_grk_plugin_decompress_callback_info::header_info
grk_header_info header_info
Definition: grok.h:1845
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:594
_grk_header_info::comment_len
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:662
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:962
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:873
_grk_image::capture_resolution
double capture_resolution[2]
Definition: grok.h:898
_grk_decompress_params::core
grk_dparameters core
core library parameters
Definition: grok.h:733
_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:626
_grk_poc::prcE
uint64_t prcE
Definition: grok.h:397
_grk_image_comp::type
GRK_COMPONENT_TYPE type
Definition: grok.h:872
_grk_plugin_band::orientation
uint8_t orientation
Definition: grok.h:1207
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:977
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:1125
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:1131
_grk_plugin_pass::length
size_t length
Definition: grok.h:1174
_grk_image::has_display_resolution
bool has_display_resolution
Definition: grok.h:899
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:1768
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:650
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:466
_grk_cparameters::cp_num_comments
size_t cp_num_comments
Definition: grok.h:458
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:598
_grk_component_mapping_comp::palette_column
uint8_t palette_column
Definition: grok.h:586
grk_stream_read_fn
size_t(* grk_stream_read_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:792
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:654
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:1127
_grk_decompress_params::upsample
bool upsample
Definition: grok.h:763
grk_plugin_tile_component::resolutions
grk_plugin_resolution ** resolutions
Definition: grok.h:1227
_grk_codestream_info_v2::t_grid_height
uint32_t t_grid_height
number of tiles in Y
Definition: grok.h:1103
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::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:373
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:1025
_grk_cparameters::ty0
uint32_t ty0
YTOsiz.
Definition: grok.h:445
grk_prec_mode
grk_prec_mode
Precision mode.
Definition: grok.h:714
GRK_API
#define GRK_API
Definition: grok.h:47
_grk_plugin_decompress_callback_info::user_data
void * user_data
Definition: grok.h:1854
_grk_decompress_params::compressionLevel
uint32_t compressionLevel
Definition: grok.h:771
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:948
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:848
_grk_decompress_params::outfile
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:737
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:661
_grk_image_comptparm::dx
uint32_t dx
XRsiz: horizontal separation of a sample of component with respect to the reference grid.
Definition: grok.h:913
_grk_poc::tyS
uint32_t tyS
Definition: grok.h:399
_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:852
_grk_image::iptc_buf
uint8_t * iptc_buf
Definition: grok.h:901
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:404
_grk_tile_index::marknum
uint32_t marknum
number of markers
Definition: grok.h:1137
_grk_dparameters
Core decompress parameters.
Definition: grok.h:670
_grk_poc::prc_t
uint64_t prc_t
Definition: grok.h:405
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:376
_grk_cparameters::tx0
uint32_t tx0
XTOsiz.
Definition: grok.h:443
GRK_COMPONENT_TYPE_UNSPECIFIED
@ GRK_COMPONENT_TYPE_UNSPECIFIED
Definition: grok.h:830
_grk_plugin_code_block::compressedDataLength
uint32_t compressedDataLength
Definition: grok.h:1188
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:583
_grk_decompress_params::nb_precision
uint32_t nb_precision
Definition: grok.h:759
_grk_packet_info::disto
double disto
packet distortion
Definition: grok.h:950
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:539
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:1090
_grk_cparameters::rsiz
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition: grok.h:538
_grk_raw_cparameters::sgnd
bool sgnd
signed/unsigned raw image
Definition: grok.h:430
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:554
GRK_SUPPORTED_FILE_FMT
GRK_SUPPORTED_FILE_FMT
Definition: grok.h:59
_grk_cparameters::verbose
bool verbose
Definition: grok.h:560
_grk_tile_index::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1141
_grk_image_comptparm::y0
uint32_t y0
y component offset compared to the whole image
Definition: grok.h:926
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:1785
_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:867
_grk_codestream_index::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1159
_grk_codestream_info::numdecompos
uint32_t * numdecompos
number of decomposition for each component
Definition: grok.h:1017
_grk_plugin_code_block::y1
uint32_t y1
Definition: grok.h:1183
_grk_poc::lay_t
uint16_t lay_t
Temporary values for Tile parts, initialized in pi_create_encode.
Definition: grok.h:401
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:1160
_grk_cparameters::cp_disto_alloc
bool cp_disto_alloc
allocation by rate/distortion
Definition: grok.h:451
_grk_codestream_info::D_max
double D_max
maximum distortion reduction on the whole image (add for Marcela)
Definition: grok.h:1007
grk_plugin_compress_user_callback_info::image
grk_image * image
Definition: grok.h:1782
_grk_palette_data::component_mapping
grk_component_mapping_comp * component_mapping
Definition: grok.h:595
_grk_tccp_info::cblkw
uint32_t cblkw
code-blocks width
Definition: grok.h:1045
grk::PluginDecodeCallbackInfo
Definition: plugin_interface.h:86
_grk_header_info::xml_data_len
size_t xml_data_len
Definition: grok.h:659
_grk_cparameters::numresolution
uint8_t numresolution
number of resolutions
Definition: grok.h:475
_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:885
_grk_tile_info::ph
uint32_t ph[GRK_J2K_MAXRLVLS]
precinct number for each resolution level (height)
Definition: grok.h:983
_grk_tccp_info
Component coding parameters info.
Definition: grok.h:1037
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:721
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:523
_grk_poc::tx1
uint32_t tx1
Definition: grok.h:389
GRK_PCRL
@ GRK_PCRL
precinct-component-resolution-layer order
Definition: grok.h:294
_grk_header_info::ty0
uint32_t ty0
YTOsiz.
Definition: grok.h:644
GRK_CLRSPC_DEFAULT_CIE
@ GRK_CLRSPC_DEFAULT_CIE
default CIE LAB
Definition: grok.h:325
grk
Copyright (C) 2016-2020 Grok Image Compression Inc.
Definition: BitIO.cpp:23
_grk_codestream_info::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1023
_grk_poc::layno0
uint16_t layno0
Layer num start,precinct num start, precinct num end.
Definition: grok.h:380
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:528
_grk_plugin_band
Plugin band.
Definition: grok.h:1206
_grk_plugin_code_block::x1
uint32_t x1
Definition: grok.h:1183
grk_stream_free_user_data_fn
void(* grk_stream_free_user_data_fn)(void *user_data)
Definition: grok.h:811
GRK_JPG_FMT
@ GRK_JPG_FMT
Definition: grok.h:71
_grk_header_info::isBinaryComment
bool isBinaryComment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:663
_grk_cparameters::repeats
uint32_t repeats
Definition: grok.h:557
_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:987
_grk_plugin_code_block::compressedData
uint8_t * compressedData
Definition: grok.h:1187
grk_plugin_compress_user_callback_info::outputFileNameIsRelative
bool outputFileNameIsRelative
Definition: grok.h:1779
_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:1107
_grk_cparameters::image_offset_x0
uint32_t image_offset_x0
subimage compressing: origin image offset in x direction
Definition: grok.h:503
_grk_poc::layE
uint16_t layE
End value, initialized in pi_initialise_encode.
Definition: grok.h:394
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:897
_grk_tccp_info::numresolutions
uint32_t numresolutions
number of resolutions
Definition: grok.h:1043
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:1190
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:1243
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:426
_grk_image_comp::h
uint32_t h
data height
Definition: grok.h:858
_grk_cparameters::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:511
_grk_palette_data::num_channels
uint8_t num_channels
Definition: grok.h:596
_grk_channel_definition
Channel definitions and number of definitions.
Definition: grok.h:575
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:457
_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:985
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:615
_grk_plugin_decompress_callback_info::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
Definition: grok.h:1840
_grk_plugin_init_info::verbose
bool verbose
Definition: grok.h:1769
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:509
_grk_cparameters::irreversible
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:486
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:973
grk_plugin_compress_user_callback_info::tile
grk_plugin_tile * tile
Definition: grok.h:1783
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:869
_grk_header_info::t_grid_height
uint32_t t_grid_height
tile grid height
Definition: grok.h:652
_grk_image_comptparm::stride
uint32_t stride
Definition: grok.h:920
_grk_plugin_decompress_callback_info::error_code
unsigned int error_code
Definition: grok.h:1850
GRK_PLUGIN_STATE_NO_DEBUG
#define GRK_PLUGIN_STATE_NO_DEBUG
Definition: grok.h:1737
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:902
_grk_poc::precno0
uint64_t precno0
Definition: grok.h:381
_grk_poc::prg1
GRK_PROG_ORDER prg1
Progression order enum.
Definition: grok.h:383
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:806
_grk_cparameters::tcp_distoratio
double tcp_distoratio[100]
different psnr for successive layers
Definition: grok.h:473
_grk_decompress_params::numThreads
uint32_t numThreads
Definition: grok.h:777
_grk_raw_comp_cparameters::dx
uint32_t dx
subsampling in X direction
Definition: grok.h:412
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:960
_grk_dparameters::flags
uint32_t flags
Definition: grok.h:708
_grk_cparameters::tcp_numlayers
uint16_t tcp_numlayers
number of layers
Definition: grok.h:468
grk::PLUGIN_IS_BATCH_COMPLETE
bool(* PLUGIN_IS_BATCH_COMPLETE)(void)
Definition: plugin_interface.h:80
_grk_cparameters::writeTLM
bool writeTLM
Definition: grok.h:559
_grk_header_info::irreversible
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:621
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:1834
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:773
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:989
_grk_channel_description
Channel definition: channel index, type, association.
Definition: grok.h:566
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:904
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:389
_grk_codestream_info::packno
uint32_t packno
packet number
Definition: grok.h:1009
_grk_prec::prec
uint8_t prec
Definition: grok.h:722
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:860
_grk_cparameters::tcp_mct
uint8_t tcp_mct
MCT (multiple component transform)
Definition: grok.h:525
_grk_tccp_info::csty
uint8_t csty
coding style
Definition: grok.h:1041
_grk_raw_cparameters::comps
grk_raw_comp_cparameters * comps
raw components parameters
Definition: grok.h:432
_grk_raw_cparameters::width
uint32_t width
width of the raw image
Definition: grok.h:422
ThreadPool::release
static void release()
Definition: ThreadPool.hpp:60
_grk_marker_info
Marker info.
Definition: grok.h:956
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:697
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:617
_grk_plugin_precinct::numBlocks
uint64_t numBlocks
Definition: grok.h:1199
_grk_image_comp::Xcrg
uint16_t Xcrg
Definition: grok.h:864
_grk_image::color_space
GRK_COLOR_SPACE color_space
color space: sRGB, Greyscale or YUV
Definition: grok.h:893
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:395
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:1831
_grk_decompress_params::DA_y0
uint32_t DA_y0
Decompress window up boundary.
Definition: grok.h:749
GRK_PREC_MODE_CLIP
@ GRK_PREC_MODE_CLIP
Definition: grok.h:715
_grk_cparameters::POC
grk_poc POC[32]
progression order changes
Definition: grok.h:464
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:745
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:391
_grk_plugin_decompress_callback_info::l_codec
grk_codec l_codec
Definition: grok.h:1844
_grk_tccp_info::prcw
uint32_t prcw[GRK_J2K_MAXRLVLS]
precinct width
Definition: grok.h:1063
grk_plugin_compress_user_callback_info::input_file_name
const char * input_file_name
Definition: grok.h:1778
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:1071
GRK_CPRL
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:295
_grk_poc::ty0
uint32_t ty0
Definition: grok.h:389
GRK_COMPONENT_ASSOC_UNASSOCIATED
@ GRK_COMPONENT_ASSOC_UNASSOCIATED
Definition: grok.h:841
_grk_tile_info::num_tps
uint32_t num_tps
number of tile parts
Definition: grok.h:999
_grk_cparameters::max_cs_size
uint64_t max_cs_size
Maximum size (in bytes) for the whole code stream.
Definition: grok.h:535
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:942
_grk_poc::tyE
uint32_t tyE
Definition: grok.h:399
_grk_codestream_info::codestream_size
uint64_t codestream_size
code stream's size
Definition: grok.h:1029
grk_stream_write_fn
size_t(* grk_stream_write_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:800
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:501
_grk_cparameters::cblockw_init
uint32_t cblockw_init
initial code block width (default to 64)
Definition: grok.h:477
_grk_plugin_load_info::plugin_path
const char * plugin_path
Definition: grok.h:1721
_grk_poc::txE
uint32_t txE
Definition: grok.h:399
grk_cparameters
struct _grk_cparameters grk_cparameters
Compress parameters.
grk_stream
void * grk_stream
Definition: grok.h:816
grk_dparameters
struct _grk_dparameters grk_dparameters
Core decompress parameters.
_grk_plugin_resolution::numBands
size_t numBands
Definition: grok.h:1218
_grk_plugin_decompress_callback_info::decompressor_parameters
grk_decompress_parameters * decompressor_parameters
Definition: grok.h:1846
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:453
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:1099
_grk_plugin_decompress_callback_info::init_decompressors_func
GROK_INIT_DECOMPRESSORS init_decompressors_func
Definition: grok.h:1836
_grk_image_comptparm::x0
uint32_t x0
x component offset compared to the whole image
Definition: grok.h:924
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:499
_grk_poc::comp_t
uint16_t comp_t
Definition: grok.h:403
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:850
_grk_plugin_band::stepsize
float stepsize
Definition: grok.h:1210
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:1241
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:991
_grk_tile_v2_info::prg
GRK_PROG_ORDER prg
progression order
Definition: grok.h:1077
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:1011
_grk_decompress_params::decod_format
GRK_SUPPORTED_FILE_FMT decod_format
input file format 0: J2K, 1: JP2
Definition: grok.h:739
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:1093
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:887
GRK_CLRSPC_ICC
@ GRK_CLRSPC_ICC
ICC profile.
Definition: grok.h:327
_grk_channel_definition::descriptions
grk_channel_description * descriptions
Definition: grok.h:576
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:839
_grk_dparameters::tile_index
uint16_t tile_index
tile number of the decompressed tile
Definition: grok.h:705
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:456
_grk_poc::tile
uint32_t tile
Tile number.
Definition: grok.h:387
_grk_channel_definition::num_channel_descriptions
uint16_t num_channel_descriptions
Definition: grok.h:577
_grk_tile_v2_info::numlayers
uint16_t numlayers
number of layers
Definition: grok.h:1079
_grk_jp2_color::icc_profile_buf
uint8_t * icc_profile_buf
Definition: grok.h:605
_grk_poc::precno1
uint64_t precno1
Definition: grok.h:381
_grk_tccp_info::cblk_sty
uint8_t cblk_sty
code block mode
Definition: grok.h:1049
_grk_jp2_color
ICC profile, palette, channel definition.
Definition: grok.h:604
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:519
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:701
_grk_tile_info::thresh
double * thresh
value of thresh for each layer by tile cfr.
Definition: grok.h:971
_grk_image_comptparm
Image component parameters.
Definition: grok.h:910
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:678
_grk_dparameters::DA_y0
uint32_t DA_y0
Decompress window up boundary.
Definition: grok.h:699
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:1226
_grk_plugin_pass::distortionDecrease
double distortionDecrease
Definition: grok.h:1172
_grk_tile_info::numpix
int64_t numpix
Definition: grok.h:990
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:687
_grk_image_comp::Ycrg
uint16_t Ycrg
Definition: grok.h:864
_grk_plugin_init_info
Definition: grok.h:1767
_grk_tile_info::marker
grk_marker_info * marker
list of markers
Definition: grok.h:995
_grk_codestream_info::numlayers
uint32_t numlayers
number of layer
Definition: grok.h:1015
_grk_cparameters::isHT
bool isHT
Definition: grok.h:483
_grk_plugin_decompress_callback_info::image
grk_image * image
Definition: grok.h:1847
_grk_cparameters::raw_cp
grk_raw_cparameters raw_cp
Definition: grok.h:514
_grk_cparameters::csty
uint8_t csty
csty : coding style
Definition: grok.h:460
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:1075
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:879
_grk_header_info::tx0
uint32_t tx0
XTOsiz.
Definition: grok.h:642
_grk_cparameters::t_height
uint32_t t_height
YTsiz.
Definition: grok.h:449
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:1053
_grk_tile_index::tp_index
grk_tp_index * tp_index
information concerning tile parts
Definition: grok.h:1135
_grk_cparameters::cp_comment
char * cp_comment[GRK_NUM_COMMENTS_SUPPORTED]
comment for coding
Definition: grok.h:455
_grk_palette_data::lut
uint32_t * lut
Definition: grok.h:593
_grk_cparameters::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:513
_grk_cparameters
Compress parameters.
Definition: grok.h:439
grk_marker_info
struct _grk_marker_info grk_marker_info
Marker info.
_grk_plugin_resolution::level
size_t level
Definition: grok.h:1217
_grk_plugin_band::precincts
grk_plugin_precinct ** precincts
Definition: grok.h:1209
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:1192
grk::PLUGIN_INIT
bool(* PLUGIN_INIT)(grk_plugin_init_info initInfo)
Definition: plugin_interface.h:69
GRK_ENUM_CLRSPC_EYCC
@ GRK_ENUM_CLRSPC_EYCC
Definition: grok.h:338
GRK_COMPONENT_TYPE_OPACITY
@ GRK_COMPONENT_TYPE_OPACITY
Definition: grok.h:828
_grk_tp_index::end_header
uint64_t end_header
end position of the header
Definition: grok.h:1117
_grk_dparameters::DA_x0
uint32_t DA_x0
Decompress window left boundary.
Definition: grok.h:695
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:1242
_grk_codestream_info_v2::t_grid_width
uint32_t t_grid_width
number of tiles in X
Definition: grok.h:1101
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:1115
_grk_tccp_info::qmfbid
uint8_t qmfbid
discrete wavelet transform identifier
Definition: grok.h:1051
_grk_channel_description::cn
uint16_t cn
Definition: grok.h:567
_grk_image::y1
uint32_t y1
Ysiz: height of the reference grid.
Definition: grok.h:889
_grk_image_comp::prec
uint8_t prec
precision
Definition: grok.h:866
GRK_COMPONENT_ASSOC
GRK_COMPONENT_ASSOC
Definition: grok.h:835
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:862
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:758
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:481
_grk_decompress_params::indexfilename
char indexfilename[GRK_PATH_LEN]
index file name
Definition: grok.h:743
_grk_plugin_resolution
Plugin resolution.
Definition: grok.h:1216
GRK_RLCP
@ GRK_RLCP
resolution-layer-component-precinct order
Definition: grok.h:292
_grk_cparameters::numThreads
uint32_t numThreads
Definition: grok.h:553
decodeCallback
grk_plugin_decompress_callback decodeCallback
Definition: grok.cpp:751
_grk_cparameters::write_display_resolution
bool write_display_resolution
Definition: grok.h:548
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:1784
_grk_poc::dy
uint32_t dy
Definition: grok.h:399
_grk_image_comp::owns_data
bool owns_data
Definition: grok.h:871
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:569
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:1848
_grk_dparameters::cod_format
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:693
grk::plugin_encode_user_callback_info
Definition: plugin_interface.h:56
_grk_dparameters::m_verbose
bool m_verbose
Verbose mode.
Definition: grok.h:703
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:505
GRK_PAM_FMT
@ GRK_PAM_FMT
Definition: grok.h:65
_grk_codestream_index::tile_index
grk_tile_index * tile_index
Definition: grok.h:1161
_grk_tccp_info::stepsizes_mant
uint32_t stepsizes_mant[GRK_J2K_MAXBANDS]
stepsizes used for quantization
Definition: grok.h:1055
_grk_codestream_info::main_head_end
uint64_t main_head_end
main header position
Definition: grok.h:1027
_grk_poc::tx0
uint32_t tx0
Start and end values for tile width and height.
Definition: grok.h:389
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:882