Grok  7.6.6
grok.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2021 Grok Image Compression Inc.
3  *
4  * This source code is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Affero General Public License, version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This source code is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Affero General Public License for more details.
12  *
13  * You should have received a copy of the GNU Affero General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  *
17  * This source code incorporates work covered by the BSD 2-clause license.
18  * Please see the LICENSE file in the root directory for details.
19  *
20  */
21 
22 #pragma once
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #include "grk_config.h"
29 #include <stdint.h>
30 #include <stdio.h>
31 #include <stdbool.h>
32 #include <limits.h>
33 
34 #ifdef __GNUC__
35 #define GRK_DEPRECATED(func) func __attribute__ ((deprecated))
36 #elif defined(_MSC_VER)
37 #define GRK_DEPRECATED(func) __declspec(deprecated) func
38 #else
39 #pragma message("WARNING: You need to implement DEPRECATED for this compiler")
40 #define GRK_DEPRECATED(func) func
41 #endif
42 
43 #if defined(GRK_STATIC) || !defined(_WIN32)
44 # if defined(GRK_STATIC) /* static library uses "hidden" */
45 # define GRK_API __attribute__ ((visibility ("hidden")))
46 # else
47 # define GRK_API __attribute__ ((visibility ("default")))
48 # endif
49 # define GRK_CALLCONV
50 #else
51 # define GRK_CALLCONV __stdcall
52 # if defined(GRK_EXPORTS) || defined(DLL_EXPORT)
53 # define GRK_API __declspec(dllexport)
54 # else
55 # define GRK_API __declspec(dllimport)
56 # endif
57 #endif
58 
59 typedef enum GRK_SUPPORTED_FILE_FMT {
68  GRK_RAW_FMT, /* MSB / Big Endian */
70  GRK_RAWL_FMT, /* LSB / Little Endian */
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 */
340 
344 typedef enum _GRK_CODEC_FORMAT {
347  GRK_CODEC_JP2 = 2
349 
350 #define GRK_NUM_COMMENTS_SUPPORTED 256
351 #define GRK_NUM_ASOC_BOXES_SUPPORTED 256
352 #define GRK_MAX_COMMENT_LENGTH (UINT16_MAX-2)
353 
358 
365 typedef void (*grk_msg_callback)(const char *msg, void *client_data);
366 
367 /*
368  ==========================================================
369  codec structures
370  ==========================================================
371  */
372 
377 typedef struct _grk_progression {
379  uint16_t layS;
380  uint16_t layE;
381  uint8_t resS;
382  uint8_t resE;
383  uint16_t compS;
384  uint16_t compE;
385  uint64_t precS;
386  uint64_t precE;
387 
392  char progorder[5];
394  uint32_t tileno;
396  uint32_t tx0;
397  uint32_t tx1;
398  uint32_t ty0;
399  uint32_t ty1;
401  uint16_t tpLayE;
402  uint8_t tpResS;
403  uint8_t tpResE;
404  uint16_t tpCompS;
405  uint16_t tpCompE;
406  uint64_t tpPrecE;
408  uint32_t tp_txS;
409  uint32_t tp_txE;
410  uint32_t tp_tyS;
411  uint32_t tp_tyE;
412  uint32_t dx;
413  uint32_t dy;
415  uint16_t lay_temp;
416  uint8_t res_temp;
417  uint16_t comp_temp;
418  uint64_t prec_temp;
419  uint32_t tx0_temp;
420  uint32_t ty0_temp;
422 
426  uint32_t dx;
427  uint32_t dy;
430 
433 typedef struct _grk_raw_cparameters {
434  uint32_t width;
435  uint32_t height;
436  uint16_t numcomps;
437  uint8_t prec;
438  bool sgnd;
442 
446 typedef struct _grk_cparameters {
450  uint32_t tx0;
452  uint32_t ty0;
454  uint32_t t_width;
456  uint32_t t_height;
467  uint8_t csty;
473  uint32_t numpocs;
475  uint16_t tcp_numlayers;
478  double tcp_rates[100];
480  double tcp_distoratio[100];
482  uint8_t numresolution;
484  uint32_t cblockw_init;
486  uint32_t cblockh_init;
488  uint8_t cblk_sty;
489  /* flag for high throughput */
490  bool isHT;
496  int32_t roi_compno;
498  uint32_t roi_shift;
499  /* number of precinct size specifications */
500  uint32_t res_spec;
510  uint32_t image_offset_x0;
512  uint32_t image_offset_y0;
514  uint32_t subsampling_dx;
516  uint32_t subsampling_dy;
526  uint32_t max_comp_size;
528  uint8_t tp_on;
530  uint8_t tp_flag;
532  uint8_t tcp_mct;
535  void *mct_data;
542  uint64_t max_cs_size;
545  uint16_t rsiz;
546  uint16_t framerate;
547 
548  // set to true if input file stores capture resolution
551 
554 
557 
558  // 0: bisect with all truncation points, 1: bisect with only feasible truncation points
560  uint32_t numThreads;
561  int32_t deviceId;
562  uint32_t duration; //seconds
564  uint32_t repeats;
565  bool writePLT;
566  bool writeTLM;
567  bool verbose;
569 
573 typedef struct _grk_channel_description {
574  uint16_t cn;
575  uint16_t typ;
576  uint16_t asoc;
578 
582 typedef struct _grk_channel_definition {
586 
591  uint16_t component_index;
592  uint8_t mapping_type;
593  uint8_t palette_column;
595 
599 typedef struct _grk_palette_data {
600  uint32_t *lut;
601  uint16_t num_entries;
603  uint8_t num_channels;
605  uint8_t *channel_prec;
607 
611 typedef struct grk_color {
612  uint8_t *icc_profile_buf;
613  uint32_t icc_profile_len;
618 
619 typedef struct grk_asoc {
620  uint32_t level; //0 for root level
621  const char* label;
622  uint8_t *xml;
623  uint32_t xml_len;
625 
629 typedef struct _grk_header_info {
631  uint32_t cblockw_init;
633  uint32_t cblockh_init;
637  uint32_t mct;
640  uint16_t rsiz;
642  uint32_t numresolutions;
643  // coding style can be specified in main header COD segment,
644  // tile header COD segment, and tile component COC segment.
645  // !!! Assume that coding style does not vary across tile components !!!
646  uint8_t csty;
647  // code block style is specified in main header COD segment, and can
648  // be overridden in a tile header. !!! Assume that style does
649  // not vary across tiles !!!
650  uint8_t cblk_sty;
656  uint32_t tx0;
658  uint32_t ty0;
660  uint32_t t_width;
662  uint32_t t_height;
664  uint32_t t_grid_width;
666  uint32_t t_grid_height;
668  uint16_t tcp_numlayers;
669 
670  // note: xml_data will remain valid
671  // until codec is destroyed
672  uint8_t *xml_data;
673  size_t xml_data_len;
674  size_t num_comments;
678 
680  uint32_t num_asocs;
681 
683 
687 typedef struct _grk_dparameters {
695  uint8_t cp_reduce;
702  uint16_t cp_layer;
712  uint32_t DA_x0;
714  uint32_t DA_x1;
716  uint32_t DA_y0;
718  uint32_t DA_y1;
720  bool m_verbose;
722  uint16_t tile_index;
725  uint32_t flags;
728 
732 typedef enum grk_prec_mode {
735 
739 typedef struct _grk_prec {
740  uint8_t prec;
743 
744 #define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)
745 
749 typedef struct _grk_decompress_params {
763  uint32_t DA_x0;
765  uint32_t DA_x1;
767  uint32_t DA_y0;
769  uint32_t DA_y1;
771  bool m_verbose;
773  uint16_t tile_index;
777  uint32_t nb_precision;
778  /* force output colorspace to RGB */
779  bool force_rgb;
780  /* upsample components according to their dx/dy values */
781  bool upsample;
782  /* split output components to different files */
783  bool split_pnm;
784  /* serialize XML metadata to disk */
786  uint32_t compression;
787  // compression "quality". Meaning of "quality" depends
788  // on file format we are writing to
790  int32_t deviceId;
791  uint32_t duration; //seconds
793  uint32_t repeats;
794  bool verbose;
795  uint32_t numThreads;
797 
798 typedef void *grk_codec;
799 
800 /*
801  ==========================================================
802  I/O stream typedef definitions
803  ==========================================================
804  */
805 
806 /*
807  * Callback function prototype for read function
808  *
809  */
810 typedef size_t (*grk_stream_read_fn)(void *p_buffer, size_t nb_bytes,
811  void *user_data);
812 
813 /*
814  * Callback function prototype for write function
815  */
816 typedef size_t (*grk_stream_write_fn)(void *p_buffer, size_t nb_bytes,
817  void *user_data);
818 /*
819  * Callback function prototype for (absolute) seek function.
820  */
821 typedef bool (*grk_stream_seek_fn)(uint64_t nb_bytes, void *user_data);
822 /*
823  * Callback function prototype for free user data function
824  */
825 typedef void (*grk_stream_free_user_data_fn)(void *user_data);
826 /*
827  * JPEG 2000 stream.
828  */
829 typedef void *grk_stream;
830 
831 /*
832  ==============================
833  image typedef definitions
834  ==============================
835  */
836 
837 // component type
838 typedef enum GRK_COMPONENT_TYPE{
839 
844 
846 
847 // component association
848 typedef enum GRK_COMPONENT_ASSOC{
849 
855 
857 
861 typedef struct _grk_image_comp {
863  uint32_t dx;
865  uint32_t dy;
867  uint32_t w;
869  uint32_t stride;
871  uint32_t h;
873  uint32_t x0;
875  uint32_t y0;
876  // component registration coordinates
877  uint16_t Xcrg, Ycrg;
879  uint8_t prec;
880  bool sgnd;
882  int32_t *data;
883  // if true, then image will manage data, otherwise up to caller
884  bool owns_data;
888 
892 typedef struct _grk_image {
895  uint32_t x0;
898  uint32_t y0;
900  uint32_t x1;
902  uint32_t y1;
904  uint16_t numcomps;
915  uint8_t *iptc_buf;
916  size_t iptc_len;
917  uint8_t *xmp_buf;
918  size_t xmp_len;
920 
924 typedef struct _grk_image_comptparm {
927  uint32_t dx;
930  uint32_t dy;
932  uint32_t w;
933  /* data stride */
934  uint32_t stride;
936  uint32_t h;
938  uint32_t x0;
940  uint32_t y0;
942  uint8_t prec;
944  bool sgnd;
946 
947 /*
948  ==========================================================
949  Information about the JPEG 2000 code stream
950  ==========================================================
951  */
952 
956 typedef struct _grk_packet_info {
958  uint64_t start_pos;
960  uint64_t end_ph_pos;
962  uint64_t end_pos;
964  double disto;
966 
970 typedef struct _grk_marker_info {
972  uint16_t type;
974  uint64_t pos;
976  uint32_t len;
978 
979 
983 typedef struct _grk_tile_info {
985  double *thresh;
987  uint16_t tileno;
989  uint64_t start_pos;
991  uint64_t end_header;
993  uint64_t end_pos;
995  uint32_t pw[GRK_J2K_MAXRLVLS];
997  uint32_t ph[GRK_J2K_MAXRLVLS];
1004  int64_t numpix;
1005  double distotile;
1007  uint32_t marknum;
1011  uint32_t maxmarknum;
1013  uint32_t num_tps;
1015 
1019 typedef struct _grk_codestream_info {
1021  double D_max;
1023  uint32_t packno;
1025  uint32_t index_write;
1027  uint32_t numcomps;
1029  uint32_t numlayers;
1031  uint32_t *numdecompos;
1033  uint32_t marknum;
1037  uint32_t maxmarknum;
1041  uint64_t main_head_end;
1047 
1051 typedef struct _grk_tccp_info {
1053  uint32_t compno;
1055  uint8_t csty;
1057  uint32_t numresolutions;
1059  uint32_t cblkw;
1061  uint32_t cblkh;
1063  uint8_t cblk_sty;
1065  uint8_t qmfbid;
1067  uint8_t qntsty;
1073  uint8_t numgbits;
1075  uint32_t roishift;
1081 
1085 typedef struct _grk_tile_v2_info {
1087  uint16_t tileno;
1089  uint32_t csty;
1093  uint16_t numlayers;
1095  uint32_t mct;
1098 
1100 
1104 typedef struct _grk_codestream_info_v2 {
1105  /* Tile info */
1107  uint32_t tx0;
1109  uint32_t ty0;
1111  uint32_t t_width;
1113  uint32_t t_height;
1115  uint32_t t_grid_width;
1117  uint32_t t_grid_height;
1119  uint32_t nbcomps;
1123 
1127 typedef struct _grk_tp_index {
1129  uint64_t start_pos;
1131  uint64_t end_header;
1133  uint64_t end_pos;
1135 
1139 typedef struct _grk_tile_index {
1141  uint16_t tileno;
1143  uint32_t nb_tps;
1145  uint32_t current_nb_tps;
1147  uint32_t current_tpsno;
1151  uint32_t marknum;
1155  uint32_t maxmarknum;
1157 
1161 typedef struct _grk_codestream_index {
1165  uint64_t main_head_end;
1169  uint32_t marknum;
1173  uint32_t maxmarknum;
1174  uint32_t nb_of_tiles;
1177 
1179 // Structs to pass data between grok and plugin
1181 
1185 typedef struct _grk_plugin_pass {
1186  double distortionDecrease; //distortion decrease up to and including this pass
1187  size_t rate; // rate up to and including this pass
1188  size_t length; //stream length for this pass
1190 
1194 typedef struct _grk_plugin_code_block {
1196  // debug info
1197  uint32_t x0, y0, x1, y1;
1198  unsigned int *contextStream;
1200  uint32_t numPix;
1201  uint8_t *compressedData;
1204  size_t numPasses;
1206  unsigned int sortedIndex;
1208 
1212 typedef struct _grk_plugin_precinct {
1213  uint64_t numBlocks;
1216 
1220 typedef struct _grk_plugin_band {
1221  uint8_t orientation;
1222  uint64_t numPrecincts;
1224  float stepsize;
1226 
1230 typedef struct _grk_plugin_resolution {
1231  size_t level;
1232  size_t numBands;
1235 
1243 
1244 #define GRK_DECODE_HEADER (1 << 0)
1245 #define GRK_DECODE_T2 (1 << 1)
1246 #define GRK_DECODE_T1 (1 << 2)
1247 #define GRK_DECODE_POST_T1 (1 << 3)
1248 #define GRK_PLUGIN_DECODE_CLEAN (1 << 4)
1249 #define GRK_DECODE_ALL (GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | GRK_DECODE_POST_T1)
1250 
1254 typedef struct _grk_plugin_tile {
1259 
1263 GRK_API const char* GRK_CALLCONV grk_version(void);
1264 
1271 GRK_API bool GRK_CALLCONV grk_initialize(const char *plugin_path,
1272  uint32_t numthreads);
1273 
1278 
1279 /*
1280  ============================
1281  image function definitions
1282  ============================
1283  */
1284 
1295 GRK_API grk_image* GRK_CALLCONV grk_image_create(uint16_t numcmpts,
1296  grk_image_cmptparm *cmptparms, GRK_COLOR_SPACE clrspc, bool allocData);
1297 
1304 
1305 
1312 
1319  grk_image_comp *image);
1320 
1321 /*
1322  =================================
1323  stream function definitions
1324  =================================
1325  */
1326 
1337 GRK_API grk_stream* GRK_CALLCONV grk_stream_create(size_t buffer_size,
1338  bool is_input);
1339 
1348 
1356  grk_stream_read_fn p_function);
1357 
1365  grk_stream_write_fn p_function);
1366 
1374  grk_stream_seek_fn p_function);
1375 
1384  void *data, grk_stream_free_user_data_fn p_function);
1385 
1393  uint64_t data_length);
1394 
1402  const char *fname, size_t buffer_size, bool is_read_stream);
1403 
1413  size_t buffer_len, bool ownsBuffer, bool is_read_stream);
1414 
1421  grk_stream *stream);
1422 
1430  const char *fname, bool read_stream);
1431 
1432 /*
1433  ========================================
1434  logger function definitions
1435  ========================================
1436  */
1444  void *user_data);
1452  void *user_data);
1460  void *user_data);
1461 
1462 
1472  grk_stream *stream);
1473 
1480  grk_dparameters *parameters);
1481 
1491  grk_dparameters *parameters);
1492 
1504 
1505 
1514 GRK_API grk_image* GRK_CALLCONV grk_get_tile_image(grk_codec codec,uint16_t tileIndex);
1515 
1524 
1525 
1539  uint32_t start_x, uint32_t start_y, uint32_t end_x, uint32_t end_y);
1540 
1548 GRK_API bool GRK_CALLCONV grk_decompress(grk_codec p_decompressor, grk_plugin_tile *tile);
1549 
1558 GRK_API bool GRK_CALLCONV grk_decompress_tile(grk_codec codec, uint16_t tile_index);
1559 
1566 
1567 
1568 /* COMPRESSION FUNCTIONS*/
1569 
1578 
1601  grk_cparameters *parameters);
1602 
1611  grk_cparameters *parameters, grk_image *image);
1612 
1620 
1628 
1650  uint16_t tile_index, uint8_t *data, uint64_t data_size);
1651 
1652 
1661  grk_plugin_tile *tile);
1662 
1663 
1669 
1670 
1677 
1678 
1684  grk_codestream_info_v2 **cstr_info);
1685 
1694 GRK_API void GRK_CALLCONV grk_dump_codec(grk_codec codec, uint32_t info_flag,
1695  FILE *output_stream);
1696 
1706  grk_codec codec);
1707 
1717 
1724  grk_codestream_index **p_cstr_index);
1725 
1737  float *pEncodingMatrix, int32_t *p_dc_shift, uint32_t pNbComp);
1738 
1739 /*****************
1740  Plugin Interface
1741  ******************/
1742 
1743 /*
1744  Plugin management
1745  */
1746 
1747 typedef struct _grk_plugin_load_info {
1748  const char *plugin_path;
1750 
1757 
1762 
1763 // No debug is done on plugin. Production setting.
1764 #define GRK_PLUGIN_STATE_NO_DEBUG 0x0
1765 
1766 /*
1767  For compress debugging, the plugin first performs a T1 compress.
1768  Then:
1769  1. perform host DWT on plugin MCT data, and write to host image
1770  This way, both plugin and host start from same point
1771  (assume MCT is equivalent for both host and plugin)
1772  2. map plugin DWT data, compare with host DWT, and then write to plugin image
1773  At this point in the code, the plugin image holds plugin DWT data. And if no warnings are triggered,
1774  then we can safely say that host and plugin DWT data are identical.
1775  3. Perform host compress, skipping MCT and DWT (they have already been performed)
1776  4. during host compress, each context that is formed is compared against context stream from plugin
1777  5. rate control - synch with plugin code stream, and compare
1778  6. T2 and store to disk
1779  */
1780 
1781 #define GRK_PLUGIN_STATE_DEBUG 0x1
1782 #define GRK_PLUGIN_STATE_PRE_TR1 0x2
1783 #define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4
1784 #define GRK_PLUGIN_STATE_MCT_ONLY 0x8
1785 
1790 
1791 /*
1792  Plugin compressing
1793  */
1794 typedef struct _grk_plugin_init_info {
1795  int32_t deviceId;
1796  bool verbose;
1798 
1803 
1805  const char *input_file_name;
1807  const char *output_file_name;
1811  uint8_t *compressBuffer;
1813  unsigned int error_code;
1816 
1819 
1827  grk_cparameters *compress_parameters,
1829 
1841 GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress(const char *input_dir,
1842  const char *output_dir, grk_cparameters *compress_parameters,
1844 
1849 
1854 
1855 /*
1856  Plugin decompression
1857  */
1858 
1859 typedef int (*GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info,
1860  grk_image *image);
1861 
1863  size_t deviceId;
1865  const char *input_file_name;
1866  const char *output_file_name;
1867  // input file format 0: J2K, 1: JP2
1869  // output file format 0: PGX, 1: PxM, 2: BMP etc
1878  unsigned int error_code;
1880  uint32_t full_image_x0;
1881  uint32_t full_image_y0;
1882  void* user_data;
1884 
1887 
1895  grk_decompress_parameters *decompress_parameters,
1897 
1909  const char *input_dir, const char *output_dir,
1910  grk_decompress_parameters *decompress_parameters,
1912 
1917 
1922 
1923 #ifdef __cplusplus
1924 }
1925 #endif
1926 
struct _grk_plugin_init_info grk_plugin_init_info
GRK_API void GRK_CALLCONV grk_image_all_components_data_free(grk_image *image)
Deallocate all component data for an image.
Definition: grok.cpp:511
struct _grk_cparameters grk_cparameters
Compress parameters.
struct _grk_progression grk_progression
Progression order change.
struct _grk_image grk_image
Image.
GRK_API void GRK_CALLCONV grk_set_default_decompress_params(grk_dparameters *parameters)
Initialize decompress parameters with default values.
Definition: grok.cpp:180
GRK_COMPONENT_ASSOC
Definition: grok.h:848
@ GRK_COMPONENT_ASSOC_COLOUR_1
Definition: grok.h:851
@ GRK_COMPONENT_ASSOC_COLOUR_3
Definition: grok.h:853
@ GRK_COMPONENT_ASSOC_UNASSOCIATED
Definition: grok.h:854
@ GRK_COMPONENT_ASSOC_COLOUR_2
Definition: grok.h:852
@ GRK_COMPONENT_ASSOC_WHOLE_IMAGE
Definition: grok.h:850
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress(void)
Stop batch compress.
Definition: grok.cpp:684
struct _grk_codestream_info grk_codestream_info
Code stream info.
GRK_API void GRK_CALLCONV grk_image_destroy(grk_image *image)
Deallocate all resources associated with an image.
Definition: grok.cpp:149
enum grk_prec_mode grk_precision_mode
Precision mode.
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:435
GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress(void)
Stop batch decompress.
Definition: grok.cpp:779
struct _grk_channel_description grk_channel_description
Channel definition: channel index, type, association.
#define GRK_NUM_COMMENTS_SUPPORTED
Definition: grok.h:350
void(* grk_msg_callback)(const char *msg, void *client_data)
Callback function prototype for logging.
Definition: grok.h:365
struct _grk_tp_index grk_tp_index
Tile part index info.
GRK_API bool GRK_CALLCONV grk_end_decompress(grk_codec codec)
End decompression.
Definition: grok.cpp:233
GRK_API void GRK_CALLCONV grk_plugin_cleanup(void)
Release plugin resources.
Definition: grok.cpp:596
GRK_API bool GRK_CALLCONV grk_plugin_load(grk_plugin_load_info info)
Load plugin.
Definition: grok.cpp:555
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_API size_t GRK_CALLCONV grk_stream_get_write_mem_stream_length(grk_stream *stream)
Get length of memory stream.
Definition: grok.cpp:493
GRK_API void GRK_CALLCONV grk_destroy_cstr_index(grk_codestream_index **p_cstr_index)
Destroy code stream index.
Definition: grok.cpp:442
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Supported codecs.
GRK_COMPONENT_TYPE
Definition: grok.h:838
@ GRK_COMPONENT_TYPE_OPACITY
Definition: grok.h:841
@ GRK_COMPONENT_TYPE_UNSPECIFIED
Definition: grok.h:843
@ GRK_COMPONENT_TYPE_COLOUR
Definition: grok.h:840
@ GRK_COMPONENT_TYPE_PREMULTIPLIED_OPACITY
Definition: grok.h:842
void * grk_codec
Definition: grok.h:798
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:387
GRK_API bool GRK_CALLCONV grk_start_compress(grk_codec codec)
Start compressing current image.
Definition: grok.cpp:353
GRK_API bool GRK_CALLCONV grk_read_header(grk_codec codec, grk_header_info *header_info)
Decompress JPEG 2000 header.
Definition: grok.cpp:197
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:242
GRK_API void GRK_CALLCONV grk_destroy_codec(grk_codec codec)
Destroy codec.
Definition: grok.cpp:400
GRK_API void GRK_CALLCONV grk_stream_destroy(grk_stream *stream)
Destroy a stream created by grk_create_stream.
Definition: BufferedStream.cpp:429
struct _grk_image_comptparm grk_image_cmptparm
Image component parameters.
size_t(* grk_stream_read_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:810
GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state()
Get debug state of plugin.
Definition: grok.cpp:583
struct _grk_prec grk_precision
Precision.
GRK_API grk_stream *GRK_CALLCONV grk_stream_create(size_t buffer_size, bool is_input)
Create an abstract stream.
Definition: BufferedStream.cpp:424
struct _grk_plugin_decompress_callback_info grk_plugin_decompress_callback_info
GRK_API bool GRK_CALLCONV grk_init_decompress(grk_codec codec, grk_dparameters *parameters)
Set up the decompressor with decompress parameters.
Definition: grok.cpp:187
GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress(void)
Batch decompress.
Definition: grok.cpp:767
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
GRK_API bool GRK_CALLCONV grk_set_info_handler(grk_msg_callback p_callback, void *user_data)
Set info handler.
Definition: grok.cpp:74
struct _grk_raw_cparameters grk_raw_cparameters
struct _grk_plugin_load_info grk_plugin_load_info
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:634
struct _grk_tile_v2_info grk_tile_info_v2
Tile coding parameter info.
#define GRK_J2K_MAXRLVLS
Maximum number of resolution levels authorized.
Definition: grok.h:82
struct _grk_palette_data grk_palette_data
Palette data.
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:144
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
#define GRK_API
Definition: grok.h:47
GRK_API bool GRK_CALLCONV grk_compress(grk_codec codec)
Encode an image into a JPEG 2000 code stream.
Definition: grok.cpp:363
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:342
GRK_TILE_CACHE_STRATEGY
Definition: grok.h:354
@ GRK_TILE_CACHE_ALL
Definition: grok.h:356
@ GRK_TILE_CACHE_NONE
Definition: grok.h:355
struct _grk_component_mapping_comp grk_component_mapping_comp
Component mappings: component index, mapping type, palette column.
GRK_API const char *GRK_CALLCONV grk_version(void)
library version
Definition: grok.cpp:140
struct _grk_image_comp grk_image_comp
Image component.
struct _grk_raw_comp_cparameters grk_raw_comp_cparameters
GRK_API void GRK_CALLCONV grk_deinitialize()
De-initialize library.
Definition: grok.cpp:66
GRK_API bool GRK_CALLCONV grk_initialize(const char *plugin_path, uint32_t numthreads)
Initialize library.
Definition: grok.cpp:52
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
struct grk_plugin_tile_component grk_plugin_tile_component
Plugin tile component.
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:649
GRK_API void GRK_CALLCONV grk_set_default_compress_params(grk_cparameters *parameters)
Set compressing parameters to default values, that means :
Definition: grok.cpp:313
grk_prec_mode
Precision mode.
Definition: grok.h:732
@ GRK_PREC_MODE_SCALE
Definition: grok.h:733
@ GRK_PREC_MODE_CLIP
Definition: grok.h:733
struct _grk_plugin_precinct grk_plugin_precinct
Plugin precinct.
GRK_API grk_image *GRK_CALLCONV grk_get_composited_image(grk_codec codec)
Get decompressed composite image.
Definition: grok.cpp:276
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:503
struct grk_plugin_compress_user_callback_info grk_plugin_compress_user_callback_info
_GRK_COLOR_SPACE
Supported image color spaces.
Definition: grok.h:318
@ GRK_CLRSPC_SRGB
sRGB
Definition: grok.h:320
@ GRK_CLRSPC_EYCC
extended YCC
Definition: grok.h:323
@ GRK_CLRSPC_UNKNOWN
unknown
Definition: grok.h:319
@ GRK_CLRSPC_SYCC
standard YCC (YUV)
Definition: grok.h:322
@ GRK_CLRSPC_DEFAULT_CIE
default CIE LAB
Definition: grok.h:325
@ GRK_CLRSPC_ICC
ICC profile.
Definition: grok.h:327
@ GRK_CLRSPC_CMYK
CMYK.
Definition: grok.h:324
@ GRK_CLRSPC_GRAY
grayscale
Definition: grok.h:321
@ GRK_CLRSPC_CUSTOM_CIE
custom CIE LAB
Definition: grok.h:326
bool(* grk_stream_seek_fn)(uint64_t nb_bytes, void *user_data)
Definition: grok.h:821
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:457
struct _grk_marker_info grk_marker_info
Marker info.
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
bool(* GRK_PLUGIN_COMPRESS_USER_CALLBACK)(grk_plugin_compress_user_callback_info *info)
Definition: grok.h:1817
GRK_API bool GRK_CALLCONV grk_plugin_is_batch_complete(void)
Check if batch job is complete.
Definition: grok.cpp:669
enum _GRK_COLOR_SPACE GRK_COLOR_SPACE
Supported image color spaces.
struct _grk_tile_info grk_tile_info
Tile info.
#define GRK_PATH_LEN
Maximum allowed size for filenames.
Definition: grok.h:74
GRK_ENUM_COLOUR_SPACE
Definition: grok.h:331
@ GRK_ENUM_CLRSPC_EYCC
Definition: grok.h:338
@ GRK_ENUM_CLRSPC_GRAY
Definition: grok.h:336
@ GRK_ENUM_CLRSPC_CIE
Definition: grok.h:334
@ GRK_ENUM_CLRSPC_UNKNOWN
Definition: grok.h:332
@ GRK_ENUM_CLRSPC_SRGB
Definition: grok.h:335
@ GRK_ENUM_CLRSPC_SYCC
Definition: grok.h:337
@ GRK_ENUM_CLRSPC_CMYK
Definition: grok.h:333
GRK_API bool GRK_CALLCONV grk_set_warning_handler(grk_msg_callback p_callback, void *user_data)
Set warning handler.
Definition: grok.cpp:81
struct _grk_dparameters grk_dparameters
Core decompress parameters.
#define GRK_J2K_MAXBANDS
Maximum number of sub-bands.
Definition: grok.h:83
GRK_API bool GRK_CALLCONV grk_decompress(grk_codec p_decompressor, grk_plugin_tile *tile)
Decompress image from a JPEG 2000 code stream.
Definition: grok.cpp:215
struct grk_color grk_color
ICC profile, palette, channel definition.
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:733
size_t(* grk_stream_write_fn)(void *p_buffer, size_t nb_bytes, void *user_data)
Definition: grok.h:816
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:366
GRK_API void GRK_CALLCONV grk_image_single_component_data_free(grk_image_comp *image)
Deallocate data for single image component.
Definition: grok.cpp:519
GRK_API grk_codestream_info_v2 *GRK_CALLCONV grk_get_cstr_info(grk_codec codec)
Get code stream information from codec.
Definition: grok.cpp:419
GRK_SUPPORTED_FILE_FMT
Definition: grok.h:59
@ GRK_TIF_FMT
Definition: grok.h:67
@ GRK_PAM_FMT
Definition: grok.h:65
@ GRK_RAWL_FMT
Definition: grok.h:70
@ GRK_JPG_FMT
Definition: grok.h:71
@ GRK_PNG_FMT
Definition: grok.h:69
@ GRK_PGX_FMT
Definition: grok.h:64
@ GRK_BMP_FMT
Definition: grok.h:66
@ GRK_PXM_FMT
Definition: grok.h:63
@ GRK_UNK_FMT
Definition: grok.h:60
@ GRK_JP2_FMT
Definition: grok.h:62
@ GRK_J2K_FMT
Definition: grok.h:61
@ GRK_RAW_FMT
Definition: grok.h:68
GRK_API grk_codec GRK_CALLCONV grk_create_decompress(GRK_CODEC_FORMAT format, grk_stream *stream)
Create J2K/JP2 decompression structure.
Definition: grok.cpp:156
GRK_API bool GRK_CALLCONV grk_set_decompress_window(grk_codec codec, 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:205
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:749
struct _grk_packet_info grk_packet_info
Packet info.
struct _grk_decompress_params grk_decompress_parameters
Decompress parameters.
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:499
struct _grk_codestream_info_v2 grk_codestream_info_v2
Code stream info v2.
struct _grk_channel_definition grk_channel_definition
Channel definitions and number of definitions.
int(* GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info, grk_image *image)
Definition: grok.h:1859
struct _grk_plugin_band grk_plugin_band
Plugin band.
_GRK_CODEC_FORMAT
Supported codecs.
Definition: grok.h:344
@ GRK_CODEC_J2K
JPEG 2000 code stream : read/write.
Definition: grok.h:346
@ GRK_CODEC_UNKNOWN
place-holder
Definition: grok.h:345
@ GRK_CODEC_JP2
JP2 file format : read/write.
Definition: grok.h:347
struct _grk_plugin_tile grk_plugin_tile
Plugin tile.
#define GRK_CALLCONV
Definition: grok.h:49
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_API void GRK_CALLCONV grk_destroy_cstr_info(grk_codestream_info_v2 **cstr_info)
Destroy Codestream information after compression or decompression.
Definition: grok.cpp:426
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:289
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:411
struct _grk_tccp_info grk_tccp_info
Component coding parameters info.
void(* grk_stream_free_user_data_fn)(void *user_data)
Definition: grok.h:825
struct _grk_tile_index grk_tile_index
Tile index info.
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
#define GRK_NUM_ASOC_BOXES_SUPPORTED
Definition: grok.h:351
_GRK_PROG_ORDER
Progression order.
Definition: grok.h:289
@ GRK_RPCL
resolution-precinct-component-layer order
Definition: grok.h:293
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:295
@ GRK_RLCP
resolution-layer-component-precinct order
Definition: grok.h:292
@ GRK_PROG_UNKNOWN
place-holder
Definition: grok.h:290
@ GRK_LRCP
layer-resolution-component-precinct order
Definition: grok.h:291
@ GRK_NUM_PROGRESSION_ORDERS
Definition: grok.h:296
@ GRK_PCRL
precinct-component-resolution-layer order
Definition: grok.h:294
GRK_API grk_image *GRK_CALLCONV grk_get_tile_image(grk_codec codec, uint16_t tileIndex)
Get decompressed tile image.
Definition: grok.cpp:267
GRK_API bool GRK_CALLCONV grk_end_compress(grk_codec codec)
End to compress the current image.
Definition: grok.cpp:377
struct _grk_plugin_pass grk_plugin_pass
Plugin pass.
struct _grk_header_info grk_header_info
Header info.
int32_t(* grk_plugin_decompress_callback)(grk_plugin_decompress_callback_info *info)
Definition: grok.h:1885
void * grk_stream
Definition: grok.h:829
struct _grk_codestream_index grk_codestream_index
Code stream index info.
struct grk_asoc grk_asoc
struct _grk_plugin_resolution grk_plugin_resolution
Plugin resolution.
GRK_API bool GRK_CALLCONV grk_decompress_tile(grk_codec codec, uint16_t tile_index)
Decompress a specific tile.
Definition: grok.cpp:224
struct _grk_plugin_code_block grk_plugin_code_block
Plugin code block.
GRK_API bool GRK_CALLCONV grk_plugin_init(grk_plugin_init_info initInfo)
Initialize plugin.
Definition: grok.cpp:600
message_info info
Definition: ojph_message.cpp:50
Channel definitions and number of definitions.
Definition: grok.h:582
uint16_t num_channel_descriptions
Definition: grok.h:584
grk_channel_description * descriptions
Definition: grok.h:583
Channel definition: channel index, type, association.
Definition: grok.h:573
uint16_t typ
Definition: grok.h:575
uint16_t asoc
Definition: grok.h:576
uint16_t cn
Definition: grok.h:574
Code stream index info.
Definition: grok.h:1161
uint32_t nb_of_tiles
Definition: grok.h:1174
uint64_t main_head_start
main header start position (SOC position)
Definition: grok.h:1163
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1173
uint32_t marknum
number of markers
Definition: grok.h:1169
uint64_t codestream_size
code stream's size
Definition: grok.h:1167
uint64_t main_head_end
main header end position (first SOT position)
Definition: grok.h:1165
grk_tile_index * tile_index
Definition: grok.h:1175
grk_marker_info * marker
list of markers
Definition: grok.h:1171
Code stream info v2.
Definition: grok.h:1104
uint32_t t_height
tile size in y = YTsiz
Definition: grok.h:1113
grk_tile_info_v2 m_default_tile_info
Default information regarding tiles inside image.
Definition: grok.h:1121
uint32_t nbcomps
number of components
Definition: grok.h:1119
uint32_t ty0
tile origin in y = YTOsiz
Definition: grok.h:1109
uint32_t tx0
tile origin in x = XTOsiz
Definition: grok.h:1107
uint32_t t_grid_width
number of tiles in X
Definition: grok.h:1115
uint32_t t_grid_height
number of tiles in Y
Definition: grok.h:1117
uint32_t t_width
tile size in x = XTsiz
Definition: grok.h:1111
Code stream info.
Definition: grok.h:1019
uint32_t index_write
writing the packet in the index with t2_encode_packets
Definition: grok.h:1025
grk_tile_info * tile
information regarding tiles inside image
Definition: grok.h:1045
grk_marker_info * marker
list of markers
Definition: grok.h:1035
uint64_t main_head_start
main header position
Definition: grok.h:1039
uint32_t numlayers
number of layer
Definition: grok.h:1029
uint32_t * numdecompos
number of decomposition for each component
Definition: grok.h:1031
uint32_t numcomps
component numbers
Definition: grok.h:1027
uint32_t packno
packet number
Definition: grok.h:1023
uint64_t codestream_size
code stream's size
Definition: grok.h:1043
double D_max
maximum distortion reduction on the whole image (add for Marcela)
Definition: grok.h:1021
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1037
uint32_t marknum
number of markers
Definition: grok.h:1033
uint64_t main_head_end
main header position
Definition: grok.h:1041
Component mappings: component index, mapping type, palette column.
Definition: grok.h:590
uint8_t palette_column
Definition: grok.h:593
uint8_t mapping_type
Definition: grok.h:592
uint16_t component_index
Definition: grok.h:591
Compress parameters.
Definition: grok.h:446
uint32_t cblockw_init
initial code block width (default to 64)
Definition: grok.h:484
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:508
bool cp_disto_alloc
allocation by rate/distortion
Definition: grok.h:458
GRK_PROG_ORDER prog_order
progression order (default GRK_LRCP)
Definition: grok.h:469
uint32_t repeats
Definition: grok.h:564
uint16_t cp_comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:463
uint32_t numThreads
Definition: grok.h:560
bool verbose
Definition: grok.h:567
uint32_t image_offset_x0
subimage compressing: origin image offset in x direction
Definition: grok.h:510
uint32_t rateControlAlgorithm
Definition: grok.h:559
uint64_t max_cs_size
Maximum size (in bytes) for the whole code stream.
Definition: grok.h:542
double tcp_rates[100]
rates of layers, expressed as compression ratios.
Definition: grok.h:478
grk_raw_cparameters raw_cp
Definition: grok.h:521
uint8_t numresolution
number of resolutions
Definition: grok.h:482
uint32_t subsampling_dx
subsampling value for dx
Definition: grok.h:514
uint32_t image_offset_y0
subimage compressing: origin image offset in y direction
Definition: grok.h:512
bool isHT
Definition: grok.h:490
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:518
uint32_t cblockh_init
initial code block height (default to 64)
Definition: grok.h:486
uint32_t roi_shift
region of interest: upshift value
Definition: grok.h:498
uint16_t tcp_numlayers
number of layers
Definition: grok.h:475
bool tile_size_on
size of tile: tile_size_on = false (not in argument) or = true (in argument)
Definition: grok.h:448
uint8_t tp_on
Tile part generation.
Definition: grok.h:528
uint32_t t_height
YTsiz.
Definition: grok.h:456
bool write_capture_resolution_from_file
Definition: grok.h:549
uint32_t res_spec
Definition: grok.h:500
int32_t deviceId
Definition: grok.h:561
double tcp_distoratio[100]
different psnr for successive layers
Definition: grok.h:480
size_t cp_num_comments
Definition: grok.h:465
char * cp_comment[GRK_NUM_COMMENTS_SUPPORTED]
comment for coding
Definition: grok.h:462
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:520
double capture_resolution_from_file[2]
Definition: grok.h:550
uint32_t max_comp_size
Maximum size (in bytes) for each component.
Definition: grok.h:526
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:493
uint32_t t_width
XTsiz.
Definition: grok.h:454
bool write_display_resolution
Definition: grok.h:555
uint8_t cblk_sty
code block style
Definition: grok.h:488
uint8_t csty
csty : coding style
Definition: grok.h:467
bool cp_fixed_quality
allocation by fixed_quality
Definition: grok.h:460
uint8_t tp_flag
Flag for tile part generation.
Definition: grok.h:530
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition: grok.h:504
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition: grok.h:545
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:506
void * mct_data
Naive implementation of MCT restricted to a single reversible array based compressing without offset ...
Definition: grok.h:535
uint32_t tx0
XTOsiz.
Definition: grok.h:450
bool write_capture_resolution
Definition: grok.h:552
uint32_t subsampling_dy
subsampling value for dy
Definition: grok.h:516
bool writeTLM
Definition: grok.h:566
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:502
uint16_t framerate
Definition: grok.h:546
uint8_t tcp_mct
MCT (multiple component transform)
Definition: grok.h:532
double display_resolution[2]
Definition: grok.h:556
bool writePLT
Definition: grok.h:565
int32_t roi_compno
region of interest: affected component in [0..3]; -1 indicates no ROI
Definition: grok.h:496
uint32_t ty0
YTOsiz.
Definition: grok.h:452
uint32_t duration
Definition: grok.h:562
bool cp_is_binary_comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:464
uint32_t kernelBuildOptions
Definition: grok.h:563
grk_progression progression[GRK_J2K_MAXRLVLS]
progressions
Definition: grok.h:471
uint32_t numpocs
number of progression order changes (POCs), default to 0
Definition: grok.h:473
double capture_resolution[2]
Definition: grok.h:553
Decompress parameters.
Definition: grok.h:749
int32_t deviceId
Definition: grok.h:790
grk_precision * precision
Definition: grok.h:776
uint32_t numThreads
Definition: grok.h:795
GRK_SUPPORTED_FILE_FMT cod_format
output file format 0: PGX, 1: PxM, 2: BMP
Definition: grok.h:759
uint32_t kernelBuildOptions
Definition: grok.h:792
uint32_t DA_y0
Decompress window up boundary.
Definition: grok.h:767
uint16_t tile_index
tile number of the decompressed tile
Definition: grok.h:773
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:753
uint32_t compressionLevel
Definition: grok.h:789
bool force_rgb
Definition: grok.h:779
uint32_t compression
Definition: grok.h:786
GRK_SUPPORTED_FILE_FMT decod_format
input file format 0: J2K, 1: JP2
Definition: grok.h:757
char indexfilename[GRK_PATH_LEN]
index file name
Definition: grok.h:761
uint32_t nb_precision
Definition: grok.h:777
uint32_t repeats
Definition: grok.h:793
uint32_t DA_x0
Decompress window left boundary.
Definition: grok.h:763
bool upsample
Definition: grok.h:781
uint32_t nb_tile_to_decompress
Number of tiles to decompress.
Definition: grok.h:775
bool m_verbose
Verbose mode.
Definition: grok.h:771
bool serialize_xml
Definition: grok.h:785
uint32_t duration
Definition: grok.h:791
uint32_t DA_y1
Decompress window bottom boundary.
Definition: grok.h:769
uint32_t DA_x1
Decompress window right boundary.
Definition: grok.h:765
grk_dparameters core
core library parameters
Definition: grok.h:751
bool split_pnm
Definition: grok.h:783
bool verbose
Definition: grok.h:794
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:755
Core decompress parameters.
Definition: grok.h:687
GRK_SUPPORTED_FILE_FMT decod_format
input file format
Definition: grok.h:708
GRK_TILE_CACHE_STRATEGY tileCacheStrategy
Definition: grok.h:726
uint16_t cp_layer
Set the maximum number of quality layers to decompress.
Definition: grok.h:702
uint32_t nb_tile_to_decompress
Number of tiles to decompress.
Definition: grok.h:724
GRK_SUPPORTED_FILE_FMT cod_format
output file format
Definition: grok.h:710
uint32_t DA_x1
Decompress window right boundary.
Definition: grok.h:714
uint32_t DA_x0
Decompress window left boundary.
Definition: grok.h:712
char outfile[GRK_PATH_LEN]
output file name
Definition: grok.h:706
uint32_t DA_y1
Decompress window bottom boundary.
Definition: grok.h:718
bool m_verbose
Verbose mode.
Definition: grok.h:720
uint32_t DA_y0
Decompress window up boundary.
Definition: grok.h:716
uint16_t tile_index
tile number of the decompressed tile
Definition: grok.h:722
uint8_t cp_reduce
Set the number of highest resolution levels to be discarded.
Definition: grok.h:695
char infile[GRK_PATH_LEN]
input file name
Definition: grok.h:704
uint32_t flags
Definition: grok.h:725
Header info.
Definition: grok.h:629
uint32_t cblockh_init
initial code block height, default to 64
Definition: grok.h:633
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:676
uint32_t num_asocs
Definition: grok.h:680
char * comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:675
uint32_t t_width
XTsiz.
Definition: grok.h:660
uint32_t numresolutions
number of resolutions
Definition: grok.h:642
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition: grok.h:654
size_t xml_data_len
Definition: grok.h:673
size_t num_comments
Definition: grok.h:674
uint8_t csty
Definition: grok.h:646
uint16_t tcp_numlayers
number of layers
Definition: grok.h:668
uint32_t t_grid_height
tile grid height
Definition: grok.h:666
grk_asoc asocs[GRK_NUM_ASOC_BOXES_SUPPORTED]
Definition: grok.h:679
uint32_t tx0
XTOsiz.
Definition: grok.h:656
uint32_t ty0
YTOsiz.
Definition: grok.h:658
uint32_t cblockw_init
initial code block width, default to 64
Definition: grok.h:631
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition: grok.h:640
uint32_t mct
multi-component transform identifier
Definition: grok.h:637
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:652
uint32_t t_height
YTsiz.
Definition: grok.h:662
uint8_t cblk_sty
Definition: grok.h:650
uint32_t t_grid_width
tile grid width
Definition: grok.h:664
uint8_t * xml_data
Definition: grok.h:672
bool isBinaryComment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: grok.h:677
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:635
Image component.
Definition: grok.h:861
uint32_t dx
XRsiz: horizontal separation of a sample of with component with respect to the reference grid.
Definition: grok.h:863
uint32_t h
data height
Definition: grok.h:871
GRK_COMPONENT_ASSOC association
Definition: grok.h:886
bool owns_data
Definition: grok.h:884
GRK_COMPONENT_TYPE type
Definition: grok.h:885
bool sgnd
Definition: grok.h:880
uint32_t w
data width
Definition: grok.h:867
uint8_t prec
precision
Definition: grok.h:879
uint16_t Ycrg
Definition: grok.h:877
uint32_t dy
YRsiz: vertical separation of a sample of with component with respect to the reference grid.
Definition: grok.h:865
int32_t * data
image component data
Definition: grok.h:882
uint32_t x0
x component offset compared to the whole image
Definition: grok.h:873
uint16_t Xcrg
Definition: grok.h:877
uint32_t y0
y component offset compared to the whole image
Definition: grok.h:875
uint32_t stride
data stride
Definition: grok.h:869
Image component parameters.
Definition: grok.h:924
uint32_t h
data height
Definition: grok.h:936
uint32_t y0
y component offset compared to the whole image
Definition: grok.h:940
uint32_t dx
XRsiz: horizontal separation of a sample of component with respect to the reference grid.
Definition: grok.h:927
uint8_t prec
precision
Definition: grok.h:942
uint32_t stride
Definition: grok.h:934
uint32_t x0
x component offset compared to the whole image
Definition: grok.h:938
bool sgnd
true if data is signed
Definition: grok.h:944
uint32_t w
data width
Definition: grok.h:932
uint32_t dy
YRsiz: vertical separation of a sample of component with respect to the reference grid.
Definition: grok.h:930
Image.
Definition: grok.h:892
bool has_capture_resolution
Definition: grok.h:911
uint8_t * iptc_buf
Definition: grok.h:915
uint16_t numcomps
number of components in the image
Definition: grok.h:904
uint32_t y0
YOsiz: vertical offset from the origin of the reference grid to the top side of the image area.
Definition: grok.h:898
GRK_COLOR_SPACE color_space
color space: sRGB, Greyscale or YUV
Definition: grok.h:906
bool color_applied
Definition: grok.h:910
grk_image_comp * comps
image components
Definition: grok.h:908
uint32_t x0
XOsiz: horizontal offset from the origin of the reference grid to the left side of the image area.
Definition: grok.h:895
grk_color color
Definition: grok.h:909
bool has_display_resolution
Definition: grok.h:913
size_t iptc_len
Definition: grok.h:916
double display_resolution[2]
Definition: grok.h:914
uint32_t y1
Ysiz: height of the reference grid.
Definition: grok.h:902
double capture_resolution[2]
Definition: grok.h:912
uint32_t x1
Xsiz: width of the reference grid.
Definition: grok.h:900
size_t xmp_len
Definition: grok.h:918
uint8_t * xmp_buf
Definition: grok.h:917
Marker info.
Definition: grok.h:970
uint32_t len
length, marker value included
Definition: grok.h:976
uint16_t type
marker type
Definition: grok.h:972
uint64_t pos
position in code stream
Definition: grok.h:974
Packet info.
Definition: grok.h:956
uint64_t end_ph_pos
end of packet header position (including EPH marker if it exists)
Definition: grok.h:960
uint64_t end_pos
packet end position
Definition: grok.h:962
double disto
packet distortion
Definition: grok.h:964
uint64_t start_pos
packet start position (including SOP marker if it exists)
Definition: grok.h:958
Palette data.
Definition: grok.h:599
grk_component_mapping_comp * component_mapping
Definition: grok.h:602
uint32_t * lut
Definition: grok.h:600
uint8_t num_channels
Definition: grok.h:603
uint16_t num_entries
Definition: grok.h:601
bool * channel_sign
Definition: grok.h:604
uint8_t * channel_prec
Definition: grok.h:605
Plugin band.
Definition: grok.h:1220
float stepsize
Definition: grok.h:1224
uint8_t orientation
Definition: grok.h:1221
uint64_t numPrecincts
Definition: grok.h:1222
grk_plugin_precinct ** precincts
Definition: grok.h:1223
Plugin code block.
Definition: grok.h:1194
uint8_t * compressedData
Definition: grok.h:1201
uint32_t y0
Definition: grok.h:1197
size_t numPasses
Definition: grok.h:1204
unsigned int sortedIndex
Definition: grok.h:1206
grk_plugin_pass passes[67]
Definition: grok.h:1205
uint32_t x0
Definition: grok.h:1197
unsigned int * contextStream
Definition: grok.h:1198
uint32_t y1
Definition: grok.h:1197
uint32_t numPix
Definition: grok.h:1200
size_t numBitPlanes
Definition: grok.h:1203
uint32_t x1
Definition: grok.h:1197
uint32_t compressedDataLength
Definition: grok.h:1202
GRK_SUPPORTED_FILE_FMT decod_format
Definition: grok.h:1868
uint32_t full_image_y0
Definition: grok.h:1881
grk_codec l_codec
Definition: grok.h:1872
unsigned int error_code
Definition: grok.h:1878
grk_decompress_parameters * decompressor_parameters
Definition: grok.h:1874
grk_header_info header_info
Definition: grok.h:1873
GRK_SUPPORTED_FILE_FMT cod_format
Definition: grok.h:1870
size_t deviceId
Definition: grok.h:1863
grk_stream * l_stream
Definition: grok.h:1871
grk_plugin_tile * tile
Definition: grok.h:1877
uint32_t full_image_x0
Definition: grok.h:1880
void * user_data
Definition: grok.h:1882
bool plugin_owns_image
Definition: grok.h:1876
uint32_t decompress_flags
Definition: grok.h:1879
const char * output_file_name
Definition: grok.h:1866
GROK_INIT_DECOMPRESSORS init_decompressors_func
Definition: grok.h:1864
const char * input_file_name
Definition: grok.h:1865
grk_image * image
Definition: grok.h:1875
Definition: grok.h:1794
bool verbose
Definition: grok.h:1796
int32_t deviceId
Definition: grok.h:1795
Definition: grok.h:1747
const char * plugin_path
Definition: grok.h:1748
Plugin pass.
Definition: grok.h:1185
size_t rate
Definition: grok.h:1187
size_t length
Definition: grok.h:1188
double distortionDecrease
Definition: grok.h:1186
Plugin precinct.
Definition: grok.h:1212
grk_plugin_code_block ** blocks
Definition: grok.h:1214
uint64_t numBlocks
Definition: grok.h:1213
Plugin resolution.
Definition: grok.h:1230
size_t numBands
Definition: grok.h:1232
size_t level
Definition: grok.h:1231
grk_plugin_band ** band
Definition: grok.h:1233
Plugin tile.
Definition: grok.h:1254
uint32_t decompress_flags
Definition: grok.h:1255
grk_plugin_tile_component ** tileComponents
Definition: grok.h:1257
size_t numComponents
Definition: grok.h:1256
Precision.
Definition: grok.h:739
uint8_t prec
Definition: grok.h:740
grk_precision_mode mode
Definition: grok.h:741
Progression order change.
Definition: grok.h:377
char progorder[5]
Progression order string.
Definition: grok.h:392
uint16_t comp_temp
Definition: grok.h:417
uint32_t tx1
Definition: grok.h:397
uint32_t tp_txE
Definition: grok.h:409
uint8_t res_temp
Definition: grok.h:416
GRK_PROG_ORDER prg1
Progression order enum.
Definition: grok.h:389
GRK_PROG_ORDER prg
Definition: grok.h:390
uint32_t tx0
Start and end values for tile width and height.
Definition: grok.h:396
uint16_t compE
Definition: grok.h:384
uint8_t resS
Definition: grok.h:381
uint64_t prec_temp
Definition: grok.h:418
uint32_t tp_tyE
Definition: grok.h:411
uint64_t precE
Definition: grok.h:386
uint64_t precS
Definition: grok.h:385
uint32_t ty0
Definition: grok.h:398
uint32_t ty1
Definition: grok.h:399
uint32_t ty0_temp
Definition: grok.h:420
uint16_t tpCompE
Definition: grok.h:405
uint32_t tp_tyS
Definition: grok.h:410
uint32_t dy
Definition: grok.h:413
uint32_t dx
Definition: grok.h:412
uint16_t layE
Definition: grok.h:380
uint16_t layS
progression order bounds specified by POC
Definition: grok.h:379
uint8_t tpResE
Definition: grok.h:403
uint32_t tx0_temp
Definition: grok.h:419
uint32_t tileno
Tile number.
Definition: grok.h:394
uint16_t lay_temp
tile part temporary values initialized by pi_create_encode
Definition: grok.h:415
uint16_t tpLayE
progression order bounds initialized in pi_create_compress
Definition: grok.h:401
uint64_t tpPrecE
Definition: grok.h:406
uint16_t tpCompS
Definition: grok.h:404
uint16_t compS
Definition: grok.h:383
uint32_t tp_txS
tile bounds initialized by pi_create_compress
Definition: grok.h:408
uint8_t resE
Definition: grok.h:382
uint8_t tpResS
Definition: grok.h:402
Definition: grok.h:425
uint32_t dx
Definition: grok.h:426
uint32_t dy
subsampling in X direction
Definition: grok.h:427
Definition: grok.h:433
uint8_t prec
number of components of the raw image
Definition: grok.h:437
uint32_t width
Definition: grok.h:434
uint16_t numcomps
height of the raw image
Definition: grok.h:436
grk_raw_comp_cparameters * comps
signed/unsigned raw image
Definition: grok.h:439
bool sgnd
bit depth of the raw image
Definition: grok.h:438
uint32_t height
width of the raw image
Definition: grok.h:435
Component coding parameters info.
Definition: grok.h:1051
uint32_t cblkh
code-blocks height
Definition: grok.h:1061
uint8_t cblk_sty
code block mode
Definition: grok.h:1063
uint32_t stepsizes_mant[GRK_J2K_MAXBANDS]
stepsizes used for quantization
Definition: grok.h:1069
uint32_t numresolutions
number of resolutions
Definition: grok.h:1057
uint32_t prcw_exp[GRK_J2K_MAXRLVLS]
precinct width power of 2 exponent, < 16
Definition: grok.h:1077
uint8_t qntsty
quantisation style
Definition: grok.h:1067
uint32_t prch_exp[GRK_J2K_MAXRLVLS]
precinct height power of 2 exponent, < 16
Definition: grok.h:1079
uint8_t numgbits
number of guard bits
Definition: grok.h:1073
uint8_t qmfbid
discrete wavelet transform identifier
Definition: grok.h:1065
uint32_t roishift
Region Of Interest shift.
Definition: grok.h:1075
uint32_t cblkw
code-blocks width
Definition: grok.h:1059
uint32_t compno
component index
Definition: grok.h:1053
uint32_t stepsizes_expn[GRK_J2K_MAXBANDS]
stepsizes used for quantization
Definition: grok.h:1071
uint8_t csty
coding style
Definition: grok.h:1055
Tile index info.
Definition: grok.h:1139
uint32_t marknum
number of markers
Definition: grok.h:1151
uint32_t current_tpsno
current tile-part index
Definition: grok.h:1147
grk_tp_index * tp_index
information concerning tile parts
Definition: grok.h:1149
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1155
uint32_t current_nb_tps
current nb of tile part (allocated)
Definition: grok.h:1145
uint16_t tileno
tile index
Definition: grok.h:1141
uint32_t nb_tps
number of tile parts
Definition: grok.h:1143
grk_marker_info * marker
list of markers
Definition: grok.h:1153
Tile info.
Definition: grok.h:983
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1011
uint32_t pdx[GRK_J2K_MAXRLVLS]
precinct size (in power of 2), in X for each resolution level
Definition: grok.h:999
double * thresh
value of thresh for each layer by tile cfr.
Definition: grok.h:985
int64_t numpix
Definition: grok.h:1004
uint32_t pw[GRK_J2K_MAXRLVLS]
precinct number for each resolution level (width)
Definition: grok.h:995
grk_marker_info * marker
list of markers
Definition: grok.h:1009
uint16_t tileno
number of tile
Definition: grok.h:987
uint32_t num_tps
number of tile parts
Definition: grok.h:1013
grk_packet_info * packet
information concerning packets inside tile
Definition: grok.h:1003
uint32_t marknum
number of markers
Definition: grok.h:1007
uint64_t end_header
end position of the header
Definition: grok.h:991
uint32_t pdy[GRK_J2K_MAXRLVLS]
precinct size (in power of 2), in Y for each resolution level
Definition: grok.h:1001
uint32_t ph[GRK_J2K_MAXRLVLS]
precinct number for each resolution level (height)
Definition: grok.h:997
double distotile
Definition: grok.h:1005
uint64_t start_pos
start position
Definition: grok.h:989
uint64_t end_pos
end position
Definition: grok.h:993
Tile coding parameter info.
Definition: grok.h:1085
uint16_t tileno
number (index) of tile
Definition: grok.h:1087
grk_tccp_info * tccp_info
information concerning tile component parameters
Definition: grok.h:1097
uint32_t mct
multi-component transform identifier
Definition: grok.h:1095
uint16_t numlayers
number of layers
Definition: grok.h:1093
GRK_PROG_ORDER prg
progression order
Definition: grok.h:1091
uint32_t csty
coding style
Definition: grok.h:1089
Tile part index info.
Definition: grok.h:1127
uint64_t start_pos
start position
Definition: grok.h:1129
uint64_t end_pos
end position
Definition: grok.h:1133
uint64_t end_header
end position of the header
Definition: grok.h:1131
Definition: grok.h:619
const char * label
Definition: grok.h:621
uint32_t xml_len
Definition: grok.h:623
uint8_t * xml
Definition: grok.h:622
uint32_t level
Definition: grok.h:620
ICC profile, palette, channel definition.
Definition: grok.h:611
bool has_colour_specification_box
Definition: grok.h:616
uint32_t icc_profile_len
Definition: grok.h:613
grk_channel_definition * channel_definition
Definition: grok.h:614
uint8_t * icc_profile_buf
Definition: grok.h:612
grk_palette_data * palette
Definition: grok.h:615
bool outputFileNameIsRelative
Definition: grok.h:1806
grk_cparameters * compressor_parameters
Definition: grok.h:1808
grk_image * image
Definition: grok.h:1809
grk_plugin_tile * tile
Definition: grok.h:1810
const char * output_file_name
Definition: grok.h:1807
bool transferExifTags
Definition: grok.h:1814
size_t compressBufferLen
Definition: grok.h:1812
unsigned int error_code
Definition: grok.h:1813
const char * input_file_name
Definition: grok.h:1805
uint8_t * compressBuffer
Definition: grok.h:1811
Plugin tile component.
Definition: grok.h:1239
grk_plugin_resolution ** resolutions
Definition: grok.h:1241
size_t numResolutions
Definition: grok.h:1240