OpenJPEG: j2k.h Source File

OpenJPEG 2.5.4

j2k.h
Go to the documentation of this file.
1/*
2 * The copyright in this software is being made available under the 2-clauses
3 * BSD License, included below. This software may be subject to other third
4 * party and contributor rights, including patent rights, and no such rights
5 * are granted under this license.
6 *
7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
8 * Copyright (c) 2002-2014, Professor Benoit Macq
9 * Copyright (c) 2001-2003, David Janssens
10 * Copyright (c) 2002-2003, Yannick Verschueren
11 * Copyright (c) 2003-2007, Francois-Olivier Devaux
12 * Copyright (c) 2003-2014, Antonin Descampe
13 * Copyright (c) 2005, Herve Drolon, FreeImage Team
14 * Copyright (c) 2006-2007, Parvatha Elangovan
15 * Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>
16 * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France
17 * Copyright (c) 2012, CS Systemes d'Information, France
18 *
19 * All rights reserved.
20 *
21 * Redistribution and use in source and binary forms, with or without
22 * modification, are permitted provided that the following conditions
23 * are met:
24 * 1. Redistributions of source code must retain the above copyright
25 * notice, this list of conditions and the following disclaimer.
26 * 2. Redistributions in binary form must reproduce the above copyright
27 * notice, this list of conditions and the following disclaimer in the
28 * documentation and/or other materials provided with the distribution.
29 *
30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
31 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
33 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
34 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
35 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
36 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
37 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
38 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
39 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
40 * POSSIBILITY OF SUCH DAMAGE.
41 */
42#ifndef OPJ_J2K_H
43#define OPJ_J2K_H
50
53
54#define J2K_CP_CSTY_PRT 0x01
55#define J2K_CP_CSTY_SOP 0x02
56#define J2K_CP_CSTY_EPH 0x04
57#define J2K_CCP_CSTY_PRT 0x01
58#define J2K_CCP_CBLKSTY_LAZY 0x01
59#define J2K_CCP_CBLKSTY_RESET 0x02
60#define J2K_CCP_CBLKSTY_TERMALL 0x04
61#define J2K_CCP_CBLKSTY_VSC 0x08
62#define J2K_CCP_CBLKSTY_PTERM 0x10
63#define J2K_CCP_CBLKSTY_SEGSYM 0x20
64#define J2K_CCP_CBLKSTY_HT 0x40
65#define J2K_CCP_CBLKSTY_HTMIXED 0x80
66#define J2K_CCP_QNTSTY_NOQNT 0
67#define J2K_CCP_QNTSTY_SIQNT 1
68#define J2K_CCP_QNTSTY_SEQNT 2
69
70/* ----------------------------------------------------------------------- */
71
72#define J2K_MS_SOC 0xff4f
73#define J2K_MS_SOT 0xff90
74#define J2K_MS_SOD 0xff93
75#define J2K_MS_EOC 0xffd9
76#define J2K_MS_CAP 0xff50
77#define J2K_MS_SIZ 0xff51
78#define J2K_MS_COD 0xff52
79#define J2K_MS_COC 0xff53
80#define J2K_MS_CPF 0xff59
81#define J2K_MS_RGN 0xff5e
82#define J2K_MS_QCD 0xff5c
83#define J2K_MS_QCC 0xff5d
84#define J2K_MS_POC 0xff5f
85#define J2K_MS_TLM 0xff55
86#define J2K_MS_PLM 0xff57
87#define J2K_MS_PLT 0xff58
88#define J2K_MS_PPM 0xff60
89#define J2K_MS_PPT 0xff61
90#define J2K_MS_SOP 0xff91
91#define J2K_MS_EPH 0xff92
92#define J2K_MS_CRG 0xff63
93#define J2K_MS_COM 0xff64
94#define J2K_MS_CBD 0xff78
95#define J2K_MS_MCC 0xff75
96#define J2K_MS_MCT 0xff74
97#define J2K_MS_MCO 0xff77
98
99#define J2K_MS_UNK 0
100
101/* UniPG>> */
102#ifdef USE_JPWL
103#define J2K_MS_EPC 0xff68
104#define J2K_MS_EPB 0xff66
105#define J2K_MS_ESD 0xff67
106#define J2K_MS_RED 0xff69
107#endif /* USE_JPWL */
108#ifdef USE_JPSEC
109#define J2K_MS_SEC 0xff65
110#define J2K_MS_INSEC 0xff94
111#endif /* USE_JPSEC */
112/* <<UniPG */
113
114#define J2K_MAX_POCS 32
115
116#define J2K_TCD_MATRIX_MAX_LAYER_COUNT 10
117#define J2K_TCD_MATRIX_MAX_RESOLUTION_COUNT 10
118
119/* ----------------------------------------------------------------------- */
120
125 typedef enum J2K_STATUS {
126 J2K_STATE_NONE = 0x0000,
127 J2K_STATE_MHSOC = 0x0001,
128 J2K_STATE_MHSIZ = 0x0002,
129 J2K_STATE_MH = 0x0004,
130 J2K_STATE_TPHSOT = 0x0008,
131 J2K_STATE_TPH = 0x0010,
132 J2K_STATE_MT = 0x0020,
133 J2K_STATE_NEOC = 0x0040,
134 J2K_STATE_DATA = 0x0080,
135
136 J2K_STATE_EOC = 0x0100,
137 J2K_STATE_ERR = 0x8000
138} J2K_STATUS;
139
143 typedef enum MCT_ELEMENT_TYPE {
144 MCT_TYPE_INT16 = 0,
145 MCT_TYPE_INT32 = 1,
146 MCT_TYPE_FLOAT = 2,
147 MCT_TYPE_DOUBLE = 3
148} J2K_MCT_ELEMENT_TYPE;
149
153 typedef enum MCT_ARRAY_TYPE {
154 MCT_TYPE_DEPENDENCY = 0,
155 MCT_TYPE_DECORRELATION = 1,
156 MCT_TYPE_OFFSET = 2
157} J2K_MCT_ARRAY_TYPE;
158
159/* ----------------------------------------------------------------------- */
160
164 typedef enum T2_MODE {
165 THRESH_CALC = 0,
166 FINAL_PASS = 1
167} J2K_T2_MODE;
168
172 typedef struct opj_stepsize {
174 OPJ_INT32 expn;
176 OPJ_INT32 mant;
177} opj_stepsize_t;
178
182 typedef struct opj_tccp {
184 OPJ_UINT32 csty;
186 OPJ_UINT32 numresolutions;
188 OPJ_UINT32 cblkw;
190 OPJ_UINT32 cblkh;
192 OPJ_UINT32 cblksty;
194 OPJ_UINT32 qmfbid;
196 OPJ_UINT32 qntsty;
198 opj_stepsize_t stepsizes[OPJ_J2K_MAXBANDS];
200 OPJ_UINT32 numgbits;
202 OPJ_INT32 roishift;
204 OPJ_UINT32 prcw[OPJ_J2K_MAXRLVLS];
206 OPJ_UINT32 prch[OPJ_J2K_MAXRLVLS];
208 OPJ_INT32 m_dc_level_shift;
209}
210opj_tccp_t;
211
212
213
217 typedef struct opj_mct_data {
218 J2K_MCT_ELEMENT_TYPE m_element_type;
219 J2K_MCT_ARRAY_TYPE m_array_type;
220 OPJ_UINT32 m_index;
221 OPJ_BYTE * m_data;
222 OPJ_UINT32 m_data_size;
223}
224opj_mct_data_t;
225
229 typedef struct opj_simple_mcc_decorrelation_data {
230 OPJ_UINT32 m_index;
231 OPJ_UINT32 m_nb_comps;
232 opj_mct_data_t * m_decorrelation_array;
233 opj_mct_data_t * m_offset_array;
234 OPJ_BITFIELD m_is_irreversible : 1;
235}
236opj_simple_mcc_decorrelation_data_t;
237
238 typedef struct opj_ppx_struct {
239 OPJ_BYTE* m_data; /* m_data == NULL => Zppx not read yet */
240 OPJ_UINT32 m_data_size;
241} opj_ppx;
242
248 typedef struct opj_tcp {
250 OPJ_UINT32 csty;
252 OPJ_PROG_ORDER prg;
254 OPJ_UINT32 numlayers;
255 OPJ_UINT32 num_layers_to_decode;
257 OPJ_UINT32 mct;
259 OPJ_FLOAT32 rates[100];
261 OPJ_UINT32 numpocs;
263 opj_poc_t pocs[J2K_MAX_POCS];
264
266 OPJ_UINT32 ppt_markers_count;
268 opj_ppx* ppt_markers;
269
271 OPJ_BYTE *ppt_data;
273 OPJ_BYTE *ppt_buffer;
275 OPJ_UINT32 ppt_data_size;
277 OPJ_UINT32 ppt_len;
279 OPJ_FLOAT32 distoratio[100];
281 opj_tccp_t *tccps;
283 OPJ_INT32 m_current_tile_part_number;
285 OPJ_UINT32 m_nb_tile_parts;
287 OPJ_BYTE * m_data;
289 OPJ_UINT32 m_data_size;
291 OPJ_FLOAT64 * mct_norms;
293 OPJ_FLOAT32 * m_mct_decoding_matrix;
295 OPJ_FLOAT32 * m_mct_coding_matrix;
297 opj_mct_data_t * m_mct_records;
299 OPJ_UINT32 m_nb_mct_records;
301 OPJ_UINT32 m_nb_max_mct_records;
303 opj_simple_mcc_decorrelation_data_t * m_mcc_records;
305 OPJ_UINT32 m_nb_mcc_records;
307 OPJ_UINT32 m_nb_max_mcc_records;
308
309
310 /***** FLAGS *******/
312 OPJ_BITFIELD cod : 1;
314 OPJ_BITFIELD ppt : 1;
316 OPJ_BITFIELD POC : 1;
317} opj_tcp_t;
318
319
323 typedef enum {
324 RATE_DISTORTION_RATIO = 0,
325 FIXED_DISTORTION_RATIO = 1,
326 FIXED_LAYER = 2,
327} J2K_QUALITY_LAYER_ALLOCATION_STRATEGY;
328
329
330 typedef struct opj_encoding_param {
332 OPJ_UINT32 m_max_comp_size;
334 OPJ_INT32 m_tp_pos;
336 OPJ_INT32 *m_matrice;
338 OPJ_BYTE m_tp_flag;
340 J2K_QUALITY_LAYER_ALLOCATION_STRATEGY m_quality_layer_alloc_strategy;
342 OPJ_BITFIELD m_tp_on : 1;
343}
344opj_encoding_param_t;
345
346 typedef struct opj_decoding_param {
348 OPJ_UINT32 m_reduce;
350 OPJ_UINT32 m_layer;
351}
352opj_decoding_param_t;
353
354
358 typedef struct opj_cp {
360 /*int img_size;*/
362 OPJ_UINT16 rsiz;
364 OPJ_UINT32 tx0; /* MSD see norm */
366 OPJ_UINT32 ty0; /* MSD see norm */
368 OPJ_UINT32 tdx;
370 OPJ_UINT32 tdy;
372 OPJ_CHAR *comment;
374 OPJ_UINT32 tw;
376 OPJ_UINT32 th;
377
379 OPJ_UINT32 ppm_markers_count;
381 opj_ppx* ppm_markers;
382
384 OPJ_BYTE *ppm_data;
386 OPJ_UINT32 ppm_len;
388 OPJ_UINT32 ppm_data_read;
389
390 OPJ_BYTE *ppm_data_current;
391
393 OPJ_BYTE *ppm_buffer;
395 OPJ_BYTE *ppm_data_first;
397 OPJ_UINT32 ppm_data_size;
399 OPJ_INT32 ppm_store;
401 OPJ_INT32 ppm_previous;
402
404 opj_tcp_t *tcps;
405
406 union {
407 opj_decoding_param_t m_dec;
408 opj_encoding_param_t m_enc;
409 }
410 m_specific_param;
411
413 OPJ_BOOL strict;
414
415 /* UniPG>> */
416#ifdef USE_JPWL
418 OPJ_BOOL epc_on;
420 OPJ_BOOL epb_on;
422 OPJ_BOOL esd_on;
424 OPJ_BOOL info_on;
426 OPJ_BOOL red_on;
428 int hprot_MH;
430 int hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS];
432 int hprot_TPH[JPWL_MAX_NO_TILESPECS];
434 int pprot_tileno[JPWL_MAX_NO_PACKSPECS];
436 int pprot_packno[JPWL_MAX_NO_PACKSPECS];
438 int pprot[JPWL_MAX_NO_PACKSPECS];
440 int sens_size;
442 int sens_addr;
444 int sens_range;
446 int sens_MH;
448 int sens_TPH_tileno[JPWL_MAX_NO_TILESPECS];
450 int sens_TPH[JPWL_MAX_NO_TILESPECS];
452 OPJ_BOOL correct;
454 int exp_comps;
456 OPJ_UINT32 max_tiles;
457#endif /* USE_JPWL */
458
459 /******** FLAGS *********/
461 OPJ_BITFIELD ppm : 1;
463 OPJ_BITFIELD m_is_decoder : 1;
465 OPJ_BITFIELD allow_different_bit_depth_sign : 1;
466 /* <<UniPG */
467} opj_cp_t;
468
470 typedef struct opj_j2k_tlm_tile_part_info {
472 OPJ_UINT16 m_tile_index;
475 OPJ_UINT32 m_length;
476} opj_j2k_tlm_tile_part_info_t;
477
479 typedef struct opj_j2k_tlm_info {
481 OPJ_UINT32 m_entries_count;
483 opj_j2k_tlm_tile_part_info_t* m_tile_part_infos;
484
485 OPJ_BOOL m_is_invalid;
486} opj_j2k_tlm_info_t;
487
488 typedef struct opj_j2k_dec {
490 OPJ_UINT32 m_state;
494 opj_tcp_t *m_default_tcp;
495 OPJ_BYTE *m_header_data;
496 OPJ_UINT32 m_header_data_size;
498 OPJ_UINT32 m_sot_length;
500 OPJ_UINT32 m_start_tile_x;
501 OPJ_UINT32 m_start_tile_y;
502 OPJ_UINT32 m_end_tile_x;
503 OPJ_UINT32 m_end_tile_y;
504
506 OPJ_INT32 m_tile_ind_to_dec;
508 OPJ_OFF_T m_last_sot_read_pos;
509
515 OPJ_BOOL m_last_tile_part;
516
517 OPJ_UINT32 m_numcomps_to_decode;
518 OPJ_UINT32 *m_comps_indices_to_decode;
519
520 opj_j2k_tlm_info_t m_tlm;
521
525 /* Current index in m_intersecting_tile_parts_offset[] to seek to */
526 OPJ_UINT32 m_idx_intersecting_tile_parts;
527 /* Number of elements of m_intersecting_tile_parts_offset[] */
528 OPJ_UINT32 m_num_intersecting_tile_parts;
529 /* Start offset of contributing tile parts */
530 OPJ_OFF_T* m_intersecting_tile_parts_offset;
531
533 OPJ_BITFIELD m_can_decode : 1;
534 OPJ_BITFIELD m_discard_tiles : 1;
535 OPJ_BITFIELD m_skip_data : 1;
537 OPJ_BITFIELD m_nb_tile_parts_correction_checked : 1;
538 OPJ_BITFIELD m_nb_tile_parts_correction : 1;
539
540} opj_j2k_dec_t;
541
542 typedef struct opj_j2k_enc {
544 OPJ_UINT32 m_current_poc_tile_part_number; /* tp_num */
545
547 OPJ_UINT32 m_current_tile_part_number; /*cur_tp_num */
548
549 /* whether to generate TLM markers */
550 OPJ_BOOL m_TLM;
551
552 /* whether the Ttlmi field in a TLM marker is a byte (otherwise a uint16) */
553 OPJ_BOOL m_Ttlmi_is_byte;
554
559 OPJ_OFF_T m_tlm_start;
563 OPJ_BYTE * m_tlm_sot_offsets_buffer;
567 OPJ_BYTE * m_tlm_sot_offsets_current;
568
571 OPJ_UINT32 m_total_tile_parts; /* totnum_tp */
572
573 /* encoded data for a tile */
574 OPJ_BYTE * m_encoded_tile_data;
575
576 /* size of the encoded_data */
577 OPJ_UINT32 m_encoded_tile_size;
578
579 /* encoded data for a tile */
580 OPJ_BYTE * m_header_tile_data;
581
582 /* size of the encoded_data */
583
584 OPJ_UINT32 m_header_tile_data_size;
585
586 /* whether to generate PLT markers */
587 OPJ_BOOL m_PLT;
588
589 /* reserved bytes in m_encoded_tile_size for PLT markers */
590 OPJ_UINT32 m_reserved_bytes_for_PLT;
591
593 OPJ_UINT32 m_nb_comps;
594
595} opj_j2k_enc_t;
596
597
598
599struct opj_tcd;
603 typedef struct opj_j2k {
604 /* J2K codestream is decoded*/
605 OPJ_BOOL m_is_decoder;
606
607 /* FIXME DOC*/
608 union {
609 opj_j2k_dec_t m_decoder;
610 opj_j2k_enc_t m_encoder;
611 }
612 m_specific_param;
613
615 opj_image_t* m_private_image;
616
617 /* pointer to the output image (decoded)*/
618 opj_image_t* m_output_image;
619
621 opj_cp_t m_cp;
622
624 opj_procedure_list_t * m_procedure_list;
625
627 opj_procedure_list_t * m_validation_list;
628
630 opj_codestream_index_t *cstr_index;
631
633 OPJ_UINT32 m_current_tile_number;
634
636 struct opj_tcd * m_tcd;
637
639 opj_thread_pool_t* m_tp;
640
642 OPJ_UINT32 ihdr_w;
643
645 OPJ_UINT32 ihdr_h;
646
648 unsigned int dump_state;
649}
650opj_j2k_t;
651
652
653
654
657/* ----------------------------------------------------------------------- */
658
665void opj_j2k_setup_decoder(opj_j2k_t *j2k, opj_dparameters_t *parameters);
666
667void opj_j2k_decoder_set_strict_mode(opj_j2k_t *j2k, OPJ_BOOL strict);
668
669 OPJ_BOOL opj_j2k_set_threads(opj_j2k_t *j2k, OPJ_UINT32 num_threads);
670
676 opj_j2k_t* opj_j2k_create_compress(void);
677
678
679 OPJ_BOOL opj_j2k_setup_encoder(opj_j2k_t *p_j2k,
680 opj_cparameters_t *parameters,
681 opj_image_t *image,
682 opj_event_mgr_t * p_manager);
683
687const char *opj_j2k_convert_progression_order(OPJ_PROG_ORDER prg_order);
688
689/* ----------------------------------------------------------------------- */
691
693
698 OPJ_BOOL opj_j2k_end_decompress(opj_j2k_t *j2k,
699 opj_stream_private_t *p_stream,
700 opj_event_mgr_t * p_manager);
701
712 OPJ_BOOL opj_j2k_read_header(opj_stream_private_t *p_stream,
713 opj_j2k_t* p_j2k,
714 opj_image_t** p_image,
715 opj_event_mgr_t* p_manager);
716
717
723void opj_j2k_destroy(opj_j2k_t *p_j2k);
724
730void j2k_destroy_cstr_index(opj_codestream_index_t *p_cstr_ind);
731
741 OPJ_BOOL opj_j2k_decode_tile(opj_j2k_t * p_j2k,
742 OPJ_UINT32 p_tile_index,
743 OPJ_BYTE * p_data,
744 OPJ_UINT32 p_data_size,
745 opj_stream_private_t *p_stream,
746 opj_event_mgr_t * p_manager);
747
762 OPJ_BOOL opj_j2k_read_tile_header(opj_j2k_t * p_j2k,
763 OPJ_UINT32 * p_tile_index,
764 OPJ_UINT32 * p_data_size,
765 OPJ_INT32 * p_tile_x0,
766 OPJ_INT32 * p_tile_y0,
767 OPJ_INT32 * p_tile_x1,
768 OPJ_INT32 * p_tile_y1,
769 OPJ_UINT32 * p_nb_comps,
770 OPJ_BOOL * p_go_on,
771 opj_stream_private_t *p_stream,
772 opj_event_mgr_t * p_manager);
773
774
785 OPJ_BOOL opj_j2k_set_decoded_components(opj_j2k_t *p_j2k,
786 OPJ_UINT32 numcomps,
787 const OPJ_UINT32* comps_indices,
788 opj_event_mgr_t * p_manager);
789
803 OPJ_BOOL opj_j2k_set_decode_area(opj_j2k_t *p_j2k,
804 opj_image_t* p_image,
805 OPJ_INT32 p_start_x, OPJ_INT32 p_start_y,
806 OPJ_INT32 p_end_x, OPJ_INT32 p_end_y,
807 opj_event_mgr_t * p_manager);
808
814 opj_j2k_t* opj_j2k_create_decompress(void);
815
816
825void j2k_dump(opj_j2k_t* p_j2k, OPJ_INT32 flag, FILE* out_stream);
826
827
828
836void j2k_dump_image_header(opj_image_t* image, OPJ_BOOL dev_dump_flag,
837 FILE* out_stream);
838
846void j2k_dump_image_comp_header(opj_image_comp_t* comp, OPJ_BOOL dev_dump_flag,
847 FILE* out_stream);
848
856 opj_codestream_info_v2_t* j2k_get_cstr_info(opj_j2k_t* p_j2k);
857
865 opj_codestream_index_t* j2k_get_cstr_index(opj_j2k_t* p_j2k);
866
875 OPJ_BOOL opj_j2k_decode(opj_j2k_t *j2k,
876 opj_stream_private_t *p_stream,
877 opj_image_t *p_image,
878 opj_event_mgr_t *p_manager);
879
880
881 OPJ_BOOL opj_j2k_get_tile(opj_j2k_t *p_j2k,
882 opj_stream_private_t *p_stream,
883 opj_image_t* p_image,
884 opj_event_mgr_t * p_manager,
885 OPJ_UINT32 tile_index);
886
887 OPJ_BOOL opj_j2k_set_decoded_resolution_factor(opj_j2k_t *p_j2k,
888 OPJ_UINT32 res_factor,
889 opj_event_mgr_t * p_manager);
890
900 OPJ_BOOL opj_j2k_encoder_set_extra_options(
901 opj_j2k_t *p_j2k,
902 const char* const* p_options,
903 opj_event_mgr_t * p_manager);
904
914 OPJ_BOOL opj_j2k_write_tile(opj_j2k_t * p_j2k,
915 OPJ_UINT32 p_tile_index,
916 OPJ_BYTE * p_data,
917 OPJ_UINT32 p_data_size,
918 opj_stream_private_t *p_stream,
919 opj_event_mgr_t * p_manager);
920
924 OPJ_BOOL opj_j2k_encode(opj_j2k_t * p_j2k,
925 opj_stream_private_t *cio,
926 opj_event_mgr_t * p_manager);
927
938 OPJ_BOOL opj_j2k_start_compress(opj_j2k_t *p_j2k,
939 opj_stream_private_t *p_stream,
940 opj_image_t * p_image,
941 opj_event_mgr_t * p_manager);
942
947 OPJ_BOOL opj_j2k_end_compress(opj_j2k_t *p_j2k,
948 opj_stream_private_t *cio,
949 opj_event_mgr_t * p_manager);
950
951 OPJ_BOOL opj_j2k_setup_mct_encoding(opj_tcp_t * p_tcp, opj_image_t * p_image);
952
953
954#endif /* OPJ_J2K_H */
opj_stream_private_t
struct opj_stream_private opj_stream_private_t
Byte input-output stream.
opj_event_mgr_t
struct opj_event_mgr opj_event_mgr_t
Message handler object used for.
opj_procedure_list_t
struct opj_procedure_list opj_procedure_list_t
A list of procedures.
j2k_dump
void j2k_dump(opj_j2k_t *p_j2k, OPJ_INT32 flag, FILE *out_stream)
Dump some elements from the J2K decompression structure .
Definition j2k.c:11480
opj_j2k_decode
OPJ_BOOL opj_j2k_decode(opj_j2k_t *j2k, opj_stream_private_t *p_stream, opj_image_t *p_image, opj_event_mgr_t *p_manager)
Decode an image from a JPEG-2000 codestream.
Definition j2k.c:12377
J2K_MAX_POCS
#define J2K_MAX_POCS
Maximum number of POCs.
Definition j2k.h:114
opj_j2k_enc_t
struct opj_j2k_enc opj_j2k_enc_t
opj_j2k_create_compress
opj_j2k_t * opj_j2k_create_compress(void)
Creates a J2K compression structure.
Definition j2k.c:6821
opj_j2k_end_decompress
OPJ_BOOL opj_j2k_end_decompress(opj_j2k_t *j2k, opj_stream_private_t *p_stream, opj_event_mgr_t *p_manager)
Ends the decompression procedures and possibiliy add data to be read after the codestream.
Definition j2k.c:8477
J2K_MCT_ARRAY_TYPE
enum MCT_ARRAY_TYPE J2K_MCT_ARRAY_TYPE
Type of MCT array.
opj_j2k_tlm_info_t
struct opj_j2k_tlm_info opj_j2k_tlm_info_t
Information got from the concatenation of TLM marker semgnets.
opj_simple_mcc_decorrelation_data_t
struct opj_simple_mcc_decorrelation_data opj_simple_mcc_decorrelation_data_t
FIXME DOC.
opj_j2k_read_tile_header
OPJ_BOOL opj_j2k_read_tile_header(opj_j2k_t *p_j2k, OPJ_UINT32 *p_tile_index, OPJ_UINT32 *p_data_size, OPJ_INT32 *p_tile_x0, OPJ_INT32 *p_tile_y0, OPJ_INT32 *p_tile_x1, OPJ_INT32 *p_tile_y1, OPJ_UINT32 *p_nb_comps, OPJ_BOOL *p_go_on, opj_stream_private_t *p_stream, opj_event_mgr_t *p_manager)
Reads a tile header.
Definition j2k.c:9699
j2k_dump_image_header
void j2k_dump_image_header(opj_image_t *image, OPJ_BOOL dev_dump_flag, FILE *out_stream)
Dump an image header structure.
Definition j2k.c:11630
opj_mct_data_t
struct opj_mct_data opj_mct_data_t
FIXME DOC.
opj_j2k_read_header
OPJ_BOOL opj_j2k_read_header(opj_stream_private_t *p_stream, opj_j2k_t *p_j2k, opj_image_t **p_image, opj_event_mgr_t *p_manager)
Reads a jpeg2000 codestream header structure.
Definition j2k.c:8488
opj_j2k_end_compress
OPJ_BOOL opj_j2k_end_compress(opj_j2k_t *p_j2k, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
Ends the compression procedures and possibiliy add data to be read after the codestream.
Definition j2k.c:12752
T2_MODE
T2_MODE
T2 encoding mode.
Definition j2k.h:164
THRESH_CALC
@ THRESH_CALC
Definition j2k.h:165
FINAL_PASS
@ FINAL_PASS
Function called in Rate allocation process.
Definition j2k.h:166
J2K_MCT_ELEMENT_TYPE
enum MCT_ELEMENT_TYPE J2K_MCT_ELEMENT_TYPE
Type of elements storing in the MCT data.
opj_j2k_setup_encoder
OPJ_BOOL opj_j2k_setup_encoder(opj_j2k_t *p_j2k, opj_cparameters_t *parameters, opj_image_t *image, opj_event_mgr_t *p_manager)
Definition j2k.c:7679
J2K_QUALITY_LAYER_ALLOCATION_STRATEGY
J2K_QUALITY_LAYER_ALLOCATION_STRATEGY
Rate allocation strategy.
Definition j2k.h:323
FIXED_DISTORTION_RATIO
@ FIXED_DISTORTION_RATIO
allocation by rate/distortion
Definition j2k.h:325
RATE_DISTORTION_RATIO
@ RATE_DISTORTION_RATIO
Definition j2k.h:324
FIXED_LAYER
@ FIXED_LAYER
allocation by fixed distortion ratio (PSNR) (fixed quality)
Definition j2k.h:326
opj_j2k_t
struct opj_j2k opj_j2k_t
JPEG-2000 codestream reader/writer.
j2k_destroy_cstr_index
void j2k_destroy_cstr_index(opj_codestream_index_t *p_cstr_ind)
Destroys a codestream index structure.
Definition j2k.c:9429
opj_j2k_decode_tile
OPJ_BOOL opj_j2k_decode_tile(opj_j2k_t *p_j2k, OPJ_UINT32 p_tile_index, OPJ_BYTE *p_data, OPJ_UINT32 p_data_size, opj_stream_private_t *p_stream, opj_event_mgr_t *p_manager)
Decode tile data.
Definition j2k.c:10111
J2K_T2_MODE
enum T2_MODE J2K_T2_MODE
T2 encoding mode.
opj_j2k_destroy
void opj_j2k_destroy(opj_j2k_t *p_j2k)
Destroys a jpeg2000 codec.
Definition j2k.c:9353
opj_j2k_tlm_tile_part_info_t
struct opj_j2k_tlm_tile_part_info opj_j2k_tlm_tile_part_info_t
Entry of a TLM marker segment.
opj_j2k_get_tile
OPJ_BOOL opj_j2k_get_tile(opj_j2k_t *p_j2k, opj_stream_private_t *p_stream, opj_image_t *p_image, opj_event_mgr_t *p_manager, OPJ_UINT32 tile_index)
Definition j2k.c:12435
opj_cp_t
struct opj_cp opj_cp_t
Coding parameters.
opj_j2k_convert_progression_order
const char * opj_j2k_convert_progression_order(OPJ_PROG_ORDER prg_order)
Converts an enum type progression order to string type.
Definition j2k.c:1651
opj_j2k_encoder_set_extra_options
OPJ_BOOL opj_j2k_encoder_set_extra_options(opj_j2k_t *p_j2k, const char *const *p_options, opj_event_mgr_t *p_manager)
Specify extra options for the encoder.
Definition j2k.c:12581
opj_j2k_decoder_set_strict_mode
void opj_j2k_decoder_set_strict_mode(opj_j2k_t *j2k, OPJ_BOOL strict)
Definition j2k.c:6763
opj_j2k_write_tile
OPJ_BOOL opj_j2k_write_tile(opj_j2k_t *p_j2k, OPJ_UINT32 p_tile_index, OPJ_BYTE *p_data, OPJ_UINT32 p_data_size, opj_stream_private_t *p_stream, opj_event_mgr_t *p_manager)
Writes a tile.
Definition j2k.c:13558
opj_decoding_param_t
struct opj_decoding_param opj_decoding_param_t
opj_j2k_set_decoded_components
OPJ_BOOL opj_j2k_set_decoded_components(opj_j2k_t *p_j2k, OPJ_UINT32 numcomps, const OPJ_UINT32 *comps_indices, opj_event_mgr_t *p_manager)
Sets the indices of the components to decode.
Definition j2k.c:10478
opj_ppx
struct opj_ppx_struct opj_ppx
opj_j2k_dec_t
struct opj_j2k_dec opj_j2k_dec_t
MCT_ARRAY_TYPE
MCT_ARRAY_TYPE
Type of MCT array.
Definition j2k.h:153
MCT_TYPE_DECORRELATION
@ MCT_TYPE_DECORRELATION
Definition j2k.h:155
MCT_TYPE_DEPENDENCY
@ MCT_TYPE_DEPENDENCY
Definition j2k.h:154
MCT_TYPE_OFFSET
@ MCT_TYPE_OFFSET
Definition j2k.h:156
opj_j2k_set_decode_area
OPJ_BOOL opj_j2k_set_decode_area(opj_j2k_t *p_j2k, opj_image_t *p_image, OPJ_INT32 p_start_x, OPJ_INT32 p_start_y, OPJ_INT32 p_end_x, OPJ_INT32 p_end_y, opj_event_mgr_t *p_manager)
Sets the given area to be decoded.
Definition j2k.c:10538
opj_stepsize_t
struct opj_stepsize opj_stepsize_t
Quantization stepsize.
MCT_ELEMENT_TYPE
MCT_ELEMENT_TYPE
Type of elements storing in the MCT data.
Definition j2k.h:143
MCT_TYPE_FLOAT
@ MCT_TYPE_FLOAT
MCT data is stored as signed integers.
Definition j2k.h:146
MCT_TYPE_DOUBLE
@ MCT_TYPE_DOUBLE
MCT data is stored as floats.
Definition j2k.h:147
MCT_TYPE_INT32
@ MCT_TYPE_INT32
MCT data is stored as signed shorts.
Definition j2k.h:145
MCT_TYPE_INT16
@ MCT_TYPE_INT16
Definition j2k.h:144
opj_j2k_set_threads
OPJ_BOOL opj_j2k_set_threads(opj_j2k_t *j2k, OPJ_UINT32 num_threads)
Definition j2k.c:6773
j2k_get_cstr_index
opj_codestream_index_t * j2k_get_cstr_index(opj_j2k_t *p_j2k)
Get the codestream index from a JPEG2000 codec.
Definition j2k.c:11761
j2k_get_cstr_info
opj_codestream_info_v2_t * j2k_get_cstr_info(opj_j2k_t *p_j2k)
Get the codestream info from a JPEG2000 codec.
Definition j2k.c:11685
j2k_dump_image_comp_header
void j2k_dump_image_comp_header(opj_image_comp_t *comp, OPJ_BOOL dev_dump_flag, FILE *out_stream)
Dump a component image header structure.
Definition j2k.c:11662
opj_j2k_start_compress
OPJ_BOOL opj_j2k_start_compress(opj_j2k_t *p_j2k, opj_stream_private_t *p_stream, opj_image_t *p_image, opj_event_mgr_t *p_manager)
Starts a compression scheme, i.e.
Definition j2k.c:12768
opj_tcp_t
struct opj_tcp opj_tcp_t
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
opj_j2k_setup_decoder
void opj_j2k_setup_decoder(opj_j2k_t *j2k, opj_dparameters_t *parameters)
Setup the decoder decoding parameters using user parameters.
Definition j2k.c:6748
opj_j2k_set_decoded_resolution_factor
OPJ_BOOL opj_j2k_set_decoded_resolution_factor(opj_j2k_t *p_j2k, OPJ_UINT32 res_factor, opj_event_mgr_t *p_manager)
Definition j2k.c:12548
opj_j2k_create_decompress
opj_j2k_t * opj_j2k_create_decompress(void)
Creates a J2K decompression structure.
Definition j2k.c:10693
opj_tccp_t
struct opj_tccp opj_tccp_t
Tile-component coding parameters.
opj_j2k_setup_mct_encoding
OPJ_BOOL opj_j2k_setup_mct_encoding(opj_tcp_t *p_tcp, opj_image_t *p_image)
Definition j2k.c:8620
opj_j2k_encode
OPJ_BOOL opj_j2k_encode(opj_j2k_t *p_j2k, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
Encodes an image into a JPEG-2000 codestream.
Definition j2k.c:12644
opj_encoding_param_t
struct opj_encoding_param opj_encoding_param_t
J2K_STATUS
J2K_STATUS
Values that specify the status of the decoding process when decoding the main header.
Definition j2k.h:125
J2K_STATE_TPHSOT
@ J2K_STATE_TPHSOT
the decoding process is in a tile part header and expects a SOT marker
Definition j2k.h:130
J2K_STATE_TPH
@ J2K_STATE_TPH
the decoding process is in a tile part header
Definition j2k.h:131
J2K_STATE_MHSOC
@ J2K_STATE_MHSOC
a SOC marker is expected
Definition j2k.h:127
J2K_STATE_MH
@ J2K_STATE_MH
the decoding process is in the main header
Definition j2k.h:129
J2K_STATE_NEOC
@ J2K_STATE_NEOC
the decoding process must not expect a EOC marker because the codestream is truncated
Definition j2k.h:133
J2K_STATE_ERR
@ J2K_STATE_ERR
the decoding process has encountered an error (FIXME warning V1 = 0x0080)
Definition j2k.h:137
J2K_STATE_DATA
@ J2K_STATE_DATA
a tile header has been successfully read and codestream is expected
Definition j2k.h:134
J2K_STATE_NONE
@ J2K_STATE_NONE
a SOC marker is expected
Definition j2k.h:126
J2K_STATE_EOC
@ J2K_STATE_EOC
the decoding process has encountered the EOC marker
Definition j2k.h:136
J2K_STATE_MHSIZ
@ J2K_STATE_MHSIZ
a SIZ marker is expected
Definition j2k.h:128
J2K_STATE_MT
@ J2K_STATE_MT
the EOC marker has just been read
Definition j2k.h:132
opj_image_comp_t
struct opj_image_comp opj_image_comp_t
Defines a single image component.
JPWL_MAX_NO_TILESPECS
#define JPWL_MAX_NO_TILESPECS
Maximum number of tile parts expected by JPWL: increase at your will.
Definition openjpeg.h:164
opj_dparameters_t
struct opj_dparameters opj_dparameters_t
Decompression parameters.
OPJ_UINT16
uint16_t OPJ_UINT16
Definition openjpeg.h:130
OPJ_BYTE
unsigned char OPJ_BYTE
Definition openjpeg.h:123
OPJ_FLOAT64
double OPJ_FLOAT64
Definition openjpeg.h:122
OPJ_J2K_MAXBANDS
#define OPJ_J2K_MAXBANDS
Number of maximum sub-band linked to number of resolution level.
Definition openjpeg.h:155
OPJ_INT32
int32_t OPJ_INT32
Definition openjpeg.h:131
OPJ_PROG_ORDER
enum PROG_ORDER OPJ_PROG_ORDER
Progression order.
OPJ_UINT32
uint32_t OPJ_UINT32
Definition openjpeg.h:132
opj_cparameters_t
struct opj_cparameters opj_cparameters_t
Compression parameters.
OPJ_CHAR
char OPJ_CHAR
Definition openjpeg.h:120
OPJ_FLOAT32
float OPJ_FLOAT32
Definition openjpeg.h:121
OPJ_OFF_T
int64_t OPJ_OFF_T
Definition openjpeg.h:136
JPWL_MAX_NO_PACKSPECS
#define JPWL_MAX_NO_PACKSPECS
Maximum number of packet parts expected by JPWL: increase at your will.
Definition openjpeg.h:165
opj_codestream_info_v2_t
struct opj_codestream_info_v2 opj_codestream_info_v2_t
Information structure about the codestream (FIXME should be expand and enhance)
OPJ_J2K_MAXRLVLS
#define OPJ_J2K_MAXRLVLS
Number of maximum resolution level authorized.
Definition openjpeg.h:154
opj_poc_t
struct opj_poc opj_poc_t
Progression order changes.
opj_image_t
struct opj_image opj_image_t
Defines image data and characteristics.
OPJ_BOOL
int OPJ_BOOL
Definition openjpeg.h:116
opj_codestream_index_t
struct opj_codestream_index opj_codestream_index_t
Index structure of the codestream (FIXME should be expand and enhance)
OPJ_BITFIELD
unsigned int OPJ_BITFIELD
Definition opj_includes.h:219
opj_cp
Coding parameters.
Definition j2k.h:358
opj_cp::esd_on
OPJ_BOOL esd_on
enables writing of ESD, in case of activated JPWL
Definition j2k.h:422
opj_cp::ppm_data_read
OPJ_UINT32 ppm_data_read
size of the ppm_data
Definition j2k.h:388
opj_cp::tdy
OPJ_UINT32 tdy
YTsiz.
Definition j2k.h:370
opj_cp::pprot
int pprot[JPWL_MAX_NO_PACKSPECS]
error protection methods for packets (0,1,16,32,37-128)
Definition j2k.h:438
opj_cp::hprot_TPH_tileno
int hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS]
tile number of header protection specification (>=0)
Definition j2k.h:430
opj_cp::ppm_data
OPJ_BYTE * ppm_data
packet header store there for future use in t2_decode_packet
Definition j2k.h:384
opj_cp::ppm_markers
opj_ppx * ppm_markers
ppm markers data (table indexed by Zppm)
Definition j2k.h:381
opj_cp::th
OPJ_UINT32 th
number of tiles in height
Definition j2k.h:376
opj_cp::m_is_decoder
OPJ_BITFIELD m_is_decoder
tells if the parameter is a coding or decoding one
Definition j2k.h:463
opj_cp::hprot_MH
int hprot_MH
error protection method for MH (0,1,16,32,37-128)
Definition j2k.h:428
opj_cp::exp_comps
int exp_comps
expected number of components at the decoder
Definition j2k.h:454
opj_cp::ppm_data_first
OPJ_BYTE * ppm_data_first
pointer remaining on the first byte of the first header if ppm is used
Definition j2k.h:395
opj_cp::ppm_store
OPJ_INT32 ppm_store
use in case of multiple marker PPM (number of info already store)
Definition j2k.h:399
opj_cp::max_tiles
OPJ_UINT32 max_tiles
maximum number of tiles at the decoder
Definition j2k.h:456
opj_cp::correct
OPJ_BOOL correct
enables JPWL correction at the decoder
Definition j2k.h:452
opj_cp::pprot_tileno
int pprot_tileno[JPWL_MAX_NO_PACKSPECS]
tile number of packet protection specification (>=0)
Definition j2k.h:434
opj_cp::ppm_data_current
OPJ_BYTE * ppm_data_current
Definition j2k.h:390
opj_cp::strict
OPJ_BOOL strict
OPJ_TRUE if entire bit stream must be decoded, OPJ_FALSE if partial bitstream decoding allowed.
Definition j2k.h:413
opj_cp::pprot_packno
int pprot_packno[JPWL_MAX_NO_PACKSPECS]
packet number of packet protection specification (>=0)
Definition j2k.h:436
opj_cp::allow_different_bit_depth_sign
OPJ_BITFIELD allow_different_bit_depth_sign
whether different bit depth or sign per component is allowed.
Definition j2k.h:465
opj_cp::sens_addr
int sens_addr
sensitivity addressing size (0=auto/2/4 bytes)
Definition j2k.h:442
opj_cp::ty0
OPJ_UINT32 ty0
YTOsiz.
Definition j2k.h:366
opj_cp::red_on
OPJ_BOOL red_on
enables writing of RED, in case of activated JPWL
Definition j2k.h:426
opj_cp::ppm_buffer
OPJ_BYTE * ppm_buffer
packet header storage original buffer
Definition j2k.h:393
opj_cp::epc_on
OPJ_BOOL epc_on
enables writing of EPC in MH, thus activating JPWL
Definition j2k.h:418
opj_cp::ppm_len
OPJ_UINT32 ppm_len
size of the ppm_data
Definition j2k.h:386
opj_cp::sens_TPH
int sens_TPH[JPWL_MAX_NO_TILESPECS]
sensitivity methods for TPHs (-1,0-7)
Definition j2k.h:450
opj_cp::ppm_data_size
OPJ_UINT32 ppm_data_size
Number of bytes actually stored inside the ppm_data.
Definition j2k.h:397
opj_cp::m_dec
opj_decoding_param_t m_dec
Definition j2k.h:407
opj_cp::m_specific_param
union opj_cp::@170155165044033116161042247051271174054037264244 m_specific_param
opj_cp::tdx
OPJ_UINT32 tdx
XTsiz.
Definition j2k.h:368
opj_cp::sens_TPH_tileno
int sens_TPH_tileno[JPWL_MAX_NO_TILESPECS]
tile number of sensitivity specification (>=0)
Definition j2k.h:448
opj_cp::ppm
OPJ_BITFIELD ppm
if ppm == 1 --> there was a PPM marker
Definition j2k.h:461
opj_cp::tw
OPJ_UINT32 tw
number of tiles in width
Definition j2k.h:374
opj_cp::m_enc
opj_encoding_param_t m_enc
Definition j2k.h:408
opj_cp::ppm_previous
OPJ_INT32 ppm_previous
use in case of multiple marker PPM (case on non-finished previous info)
Definition j2k.h:401
opj_cp::tcps
opj_tcp_t * tcps
tile coding parameters
Definition j2k.h:404
opj_cp::info_on
OPJ_BOOL info_on
enables writing of informative techniques of ESD, in case of activated JPWL
Definition j2k.h:424
opj_cp::sens_range
int sens_range
sensitivity range (0-3)
Definition j2k.h:444
opj_cp::rsiz
OPJ_UINT16 rsiz
Size of the image in bits.
Definition j2k.h:362
opj_cp::comment
OPJ_CHAR * comment
comment
Definition j2k.h:372
opj_cp::sens_MH
int sens_MH
sensitivity method for MH (-1,0-7)
Definition j2k.h:446
opj_cp::epb_on
OPJ_BOOL epb_on
enables writing of EPB, in case of activated JPWL
Definition j2k.h:420
opj_cp::sens_size
int sens_size
enables writing of ESD, (0/2/4 bytes)
Definition j2k.h:440
opj_cp::tx0
OPJ_UINT32 tx0
XTOsiz.
Definition j2k.h:364
opj_cp::hprot_TPH
int hprot_TPH[JPWL_MAX_NO_TILESPECS]
error protection methods for TPHs (0,1,16,32,37-128)
Definition j2k.h:432
opj_cp::ppm_markers_count
OPJ_UINT32 ppm_markers_count
number of ppm markers (reserved size)
Definition j2k.h:379
opj_decoding_param
Definition j2k.h:346
opj_decoding_param::m_layer
OPJ_UINT32 m_layer
if != 0, then only the first "layer" layers are decoded; if == 0 or not used, all the quality layers ...
Definition j2k.h:350
opj_decoding_param::m_reduce
OPJ_UINT32 m_reduce
if != 0, then original dimension divided by 2^(reduce); if == 0 or not used, image is decoded to the ...
Definition j2k.h:348
opj_encoding_param
Definition j2k.h:330
opj_encoding_param::m_tp_pos
OPJ_INT32 m_tp_pos
Position of tile part flag in progression order.
Definition j2k.h:334
opj_encoding_param::m_tp_flag
OPJ_BYTE m_tp_flag
Flag determining tile part generation.
Definition j2k.h:338
opj_encoding_param::m_tp_on
OPJ_BITFIELD m_tp_on
Enabling Tile part generation.
Definition j2k.h:342
opj_encoding_param::m_quality_layer_alloc_strategy
J2K_QUALITY_LAYER_ALLOCATION_STRATEGY m_quality_layer_alloc_strategy
Quality layer allocation strategy.
Definition j2k.h:340
opj_encoding_param::m_max_comp_size
OPJ_UINT32 m_max_comp_size
Maximum rate for each component.
Definition j2k.h:332
opj_encoding_param::m_matrice
OPJ_INT32 * m_matrice
fixed layer
Definition j2k.h:336
opj_j2k_dec
Definition j2k.h:488
opj_j2k_dec::m_numcomps_to_decode
OPJ_UINT32 m_numcomps_to_decode
Definition j2k.h:517
opj_j2k_dec::m_tile_ind_to_dec
OPJ_INT32 m_tile_ind_to_dec
Index of the tile to decode (used in get_tile)
Definition j2k.h:506
opj_j2k_dec::m_state
OPJ_UINT32 m_state
locate in which part of the codestream the decoder is (main header, tile header, end)
Definition j2k.h:490
opj_j2k_dec::m_header_data
OPJ_BYTE * m_header_data
Definition j2k.h:495
opj_j2k_dec::m_end_tile_x
OPJ_UINT32 m_end_tile_x
Definition j2k.h:502
opj_j2k_dec::m_comps_indices_to_decode
OPJ_UINT32 * m_comps_indices_to_decode
Definition j2k.h:518
opj_j2k_dec::m_nb_tile_parts_correction_checked
OPJ_BITFIELD m_nb_tile_parts_correction_checked
TNsot correction : see issue 254.
Definition j2k.h:537
opj_j2k_dec::m_discard_tiles
OPJ_BITFIELD m_discard_tiles
Definition j2k.h:534
opj_j2k_dec::m_can_decode
OPJ_BITFIELD m_can_decode
to tell that a tile can be decoded.
Definition j2k.h:533
opj_j2k_dec::m_header_data_size
OPJ_UINT32 m_header_data_size
Definition j2k.h:496
opj_j2k_dec::m_skip_data
OPJ_BITFIELD m_skip_data
Definition j2k.h:535
opj_j2k_dec::m_start_tile_y
OPJ_UINT32 m_start_tile_y
Definition j2k.h:501
opj_j2k_dec::m_intersecting_tile_parts_offset
OPJ_OFF_T * m_intersecting_tile_parts_offset
Definition j2k.h:530
opj_j2k_dec::m_nb_tile_parts_correction
OPJ_BITFIELD m_nb_tile_parts_correction
Definition j2k.h:538
opj_j2k_dec::m_num_intersecting_tile_parts
OPJ_UINT32 m_num_intersecting_tile_parts
Definition j2k.h:528
opj_j2k_dec::m_idx_intersecting_tile_parts
OPJ_UINT32 m_idx_intersecting_tile_parts
Below if used when there's TLM information available and we use opj_set_decoded_area() to a subset of...
Definition j2k.h:526
opj_j2k_dec::m_last_tile_part
OPJ_BOOL m_last_tile_part
Indicate that the current tile-part is assume as the last tile part of the codestream.
Definition j2k.h:515
opj_j2k_dec::m_default_tcp
opj_tcp_t * m_default_tcp
store decoding parameters common to all tiles (information like COD, COC in main header)
Definition j2k.h:494
opj_j2k_dec::m_sot_length
OPJ_UINT32 m_sot_length
to tell the tile part length
Definition j2k.h:498
opj_j2k_dec::m_last_sot_read_pos
OPJ_OFF_T m_last_sot_read_pos
Position of the last SOT marker read.
Definition j2k.h:508
opj_j2k_dec::m_start_tile_x
OPJ_UINT32 m_start_tile_x
Only tiles index in the correct range will be decoded.
Definition j2k.h:500
opj_j2k_dec::m_end_tile_y
OPJ_UINT32 m_end_tile_y
Definition j2k.h:503
opj_j2k_dec::m_tlm
opj_j2k_tlm_info_t m_tlm
Definition j2k.h:520
opj_j2k_enc
Definition j2k.h:542
opj_j2k_enc::m_current_poc_tile_part_number
OPJ_UINT32 m_current_poc_tile_part_number
Tile part number, regardless of poc, for each new poc, tp is reset to 1.
Definition j2k.h:544
opj_j2k_enc::m_encoded_tile_size
OPJ_UINT32 m_encoded_tile_size
Definition j2k.h:577
opj_j2k_enc::m_header_tile_data
OPJ_BYTE * m_header_tile_data
Definition j2k.h:580
opj_j2k_enc::m_reserved_bytes_for_PLT
OPJ_UINT32 m_reserved_bytes_for_PLT
Definition j2k.h:590
opj_j2k_enc::m_tlm_sot_offsets_buffer
OPJ_BYTE * m_tlm_sot_offsets_buffer
Stores the sizes of the tlm.
Definition j2k.h:563
opj_j2k_enc::m_total_tile_parts
OPJ_UINT32 m_total_tile_parts
Total num of tile parts in whole image = num tiles* num tileparts in each tile.
Definition j2k.h:571
opj_j2k_enc::m_tlm_sot_offsets_current
OPJ_BYTE * m_tlm_sot_offsets_current
The current offset of the tlm buffer.
Definition j2k.h:567
opj_j2k_enc::m_header_tile_data_size
OPJ_UINT32 m_header_tile_data_size
Definition j2k.h:584
opj_j2k_enc::m_current_tile_part_number
OPJ_UINT32 m_current_tile_part_number
Tile part number currently coding, taking into account POC.
Definition j2k.h:547
opj_j2k_enc::m_TLM
OPJ_BOOL m_TLM
Definition j2k.h:550
opj_j2k_enc::m_encoded_tile_data
OPJ_BYTE * m_encoded_tile_data
Definition j2k.h:574
opj_j2k_enc::m_Ttlmi_is_byte
OPJ_BOOL m_Ttlmi_is_byte
Definition j2k.h:553
opj_j2k_enc::m_tlm_start
OPJ_OFF_T m_tlm_start
locate the start position of the TLM marker after encoding the tilepart, a jump (in j2k_write_sod) is...
Definition j2k.h:559
opj_j2k_enc::m_PLT
OPJ_BOOL m_PLT
Definition j2k.h:587
opj_j2k_enc::m_nb_comps
OPJ_UINT32 m_nb_comps
Number of components.
Definition j2k.h:593
opj_j2k_tlm_info
Information got from the concatenation of TLM marker semgnets.
Definition j2k.h:479
opj_j2k_tlm_info::m_entries_count
OPJ_UINT32 m_entries_count
Number of entries in m_tile_part_infos.
Definition j2k.h:481
opj_j2k_tlm_info::m_tile_part_infos
opj_j2k_tlm_tile_part_info_t * m_tile_part_infos
Array of m_entries_count values.
Definition j2k.h:483
opj_j2k_tlm_info::m_is_invalid
OPJ_BOOL m_is_invalid
Definition j2k.h:485
opj_j2k_tlm_tile_part_info
Entry of a TLM marker segment.
Definition j2k.h:470
opj_j2k_tlm_tile_part_info::m_length
OPJ_UINT32 m_length
Length in bytes, from the beginning of the SOT marker to the end of the bit stream data for that tile...
Definition j2k.h:475
opj_j2k_tlm_tile_part_info::m_tile_index
OPJ_UINT16 m_tile_index
Tile index of the tile part.
Definition j2k.h:472
opj_j2k
JPEG-2000 codestream reader/writer.
Definition j2k.h:603
opj_j2k::ihdr_w
OPJ_UINT32 ihdr_w
Image width coming from JP2 IHDR box.
Definition j2k.h:642
opj_j2k::m_procedure_list
opj_procedure_list_t * m_procedure_list
the list of procedures to exec
Definition j2k.h:624
opj_j2k::m_current_tile_number
OPJ_UINT32 m_current_tile_number
number of the tile currently concern by coding/decoding
Definition j2k.h:633
opj_j2k::cstr_index
opj_codestream_index_t * cstr_index
helper used to write the index file
Definition j2k.h:630
opj_j2k::m_tcd
struct opj_tcd * m_tcd
the current tile coder/decoder
Definition j2k.h:636
opj_j2k::m_decoder
opj_j2k_dec_t m_decoder
Definition j2k.h:609
opj_j2k::ihdr_h
OPJ_UINT32 ihdr_h
Image height coming from JP2 IHDR box.
Definition j2k.h:645
opj_j2k::m_encoder
opj_j2k_enc_t m_encoder
Definition j2k.h:610
opj_j2k::m_is_decoder
OPJ_BOOL m_is_decoder
Definition j2k.h:605
opj_j2k::dump_state
unsigned int dump_state
Set to 1 by the decoder initialization if OPJ_DPARAMETERS_DUMP_FLAG is set.
Definition j2k.h:648
opj_j2k::m_private_image
opj_image_t * m_private_image
pointer to the internal/private encoded / decoded image
Definition j2k.h:615
opj_j2k::m_tp
opj_thread_pool_t * m_tp
Thread pool.
Definition j2k.h:639
opj_j2k::m_cp
opj_cp_t m_cp
Coding parameters.
Definition j2k.h:621
opj_j2k::m_validation_list
opj_procedure_list_t * m_validation_list
the list of validation procedures to follow to make sure the code is valid
Definition j2k.h:627
opj_j2k::m_specific_param
union opj_j2k::@211123220356221313250051000356121065061053132114 m_specific_param
opj_j2k::m_output_image
opj_image_t * m_output_image
Definition j2k.h:618
opj_mct_data
FIXME DOC.
Definition j2k.h:217
opj_mct_data::m_data
OPJ_BYTE * m_data
Definition j2k.h:221
opj_mct_data::m_data_size
OPJ_UINT32 m_data_size
Definition j2k.h:222
opj_mct_data::m_index
OPJ_UINT32 m_index
Definition j2k.h:220
opj_mct_data::m_element_type
J2K_MCT_ELEMENT_TYPE m_element_type
Definition j2k.h:218
opj_mct_data::m_array_type
J2K_MCT_ARRAY_TYPE m_array_type
Definition j2k.h:219
opj_ppx_struct
Definition j2k.h:238
opj_ppx_struct::m_data
OPJ_BYTE * m_data
Definition j2k.h:239
opj_ppx_struct::m_data_size
OPJ_UINT32 m_data_size
Definition j2k.h:240
opj_simple_mcc_decorrelation_data
FIXME DOC.
Definition j2k.h:229
opj_simple_mcc_decorrelation_data::m_is_irreversible
OPJ_BITFIELD m_is_irreversible
Definition j2k.h:234
opj_simple_mcc_decorrelation_data::m_offset_array
opj_mct_data_t * m_offset_array
Definition j2k.h:233
opj_simple_mcc_decorrelation_data::m_decorrelation_array
opj_mct_data_t * m_decorrelation_array
Definition j2k.h:232
opj_simple_mcc_decorrelation_data::m_index
OPJ_UINT32 m_index
Definition j2k.h:230
opj_simple_mcc_decorrelation_data::m_nb_comps
OPJ_UINT32 m_nb_comps
Definition j2k.h:231
opj_stepsize
Quantization stepsize.
Definition j2k.h:172
opj_stepsize::expn
OPJ_INT32 expn
exponent
Definition j2k.h:174
opj_stepsize::mant
OPJ_INT32 mant
mantissa
Definition j2k.h:176
opj_tccp
Tile-component coding parameters.
Definition j2k.h:182
opj_tccp::numgbits
OPJ_UINT32 numgbits
number of guard bits
Definition j2k.h:200
opj_tccp::stepsizes
opj_stepsize_t stepsizes[OPJ_J2K_MAXBANDS]
stepsizes used for quantization
Definition j2k.h:198
opj_tccp::qmfbid
OPJ_UINT32 qmfbid
discrete wavelet transform identifier
Definition j2k.h:194
opj_tccp::cblkh
OPJ_UINT32 cblkh
code-blocks height
Definition j2k.h:190
opj_tccp::qntsty
OPJ_UINT32 qntsty
quantisation style
Definition j2k.h:196
opj_tccp::roishift
OPJ_INT32 roishift
Region Of Interest shift.
Definition j2k.h:202
opj_tccp::cblkw
OPJ_UINT32 cblkw
code-blocks width
Definition j2k.h:188
opj_tccp::csty
OPJ_UINT32 csty
coding style
Definition j2k.h:184
opj_tccp::m_dc_level_shift
OPJ_INT32 m_dc_level_shift
the dc_level_shift
Definition j2k.h:208
opj_tccp::prch
OPJ_UINT32 prch[OPJ_J2K_MAXRLVLS]
precinct height
Definition j2k.h:206
opj_tccp::cblksty
OPJ_UINT32 cblksty
code-block coding style
Definition j2k.h:192
opj_tccp::prcw
OPJ_UINT32 prcw[OPJ_J2K_MAXRLVLS]
precinct width
Definition j2k.h:204
opj_tccp::numresolutions
OPJ_UINT32 numresolutions
number of resolutions
Definition j2k.h:186
opj_tcd
Tile coder/decoder.
Definition tcd.h:257
opj_tcd::image
opj_image_t * image
image header
Definition tcd.h:271
opj_tcp
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition j2k.h:248
opj_tcp::m_nb_max_mcc_records
OPJ_UINT32 m_nb_max_mcc_records
the max number of mct records.
Definition j2k.h:307
opj_tcp::m_nb_max_mct_records
OPJ_UINT32 m_nb_max_mct_records
the max number of mct records.
Definition j2k.h:301
opj_tcp::pocs
opj_poc_t pocs[J2K_MAX_POCS]
progression order changes
Definition j2k.h:263
opj_tcp::ppt_markers_count
OPJ_UINT32 ppt_markers_count
number of ppt markers (reserved size)
Definition j2k.h:266
opj_tcp::m_nb_tile_parts
OPJ_UINT32 m_nb_tile_parts
number of tile parts for the tile.
Definition j2k.h:285
opj_tcp::m_current_tile_part_number
OPJ_INT32 m_current_tile_part_number
current tile part number or -1 if first time into this tile
Definition j2k.h:283
opj_tcp::POC
OPJ_BITFIELD POC
indicates if a POC marker has been used O:NO, 1:YES
Definition j2k.h:316
opj_tcp::ppt_buffer
OPJ_BYTE * ppt_buffer
used to keep a track of the allocated memory
Definition j2k.h:273
opj_tcp::csty
OPJ_UINT32 csty
coding style
Definition j2k.h:250
opj_tcp::num_layers_to_decode
OPJ_UINT32 num_layers_to_decode
Definition j2k.h:255
opj_tcp::mct
OPJ_UINT32 mct
multi-component transform identifier
Definition j2k.h:257
opj_tcp::m_nb_mcc_records
OPJ_UINT32 m_nb_mcc_records
the number of mct records.
Definition j2k.h:305
opj_tcp::prg
OPJ_PROG_ORDER prg
progression order
Definition j2k.h:252
opj_tcp::m_nb_mct_records
OPJ_UINT32 m_nb_mct_records
the number of mct records.
Definition j2k.h:299
opj_tcp::rates
OPJ_FLOAT32 rates[100]
rates of layers
Definition j2k.h:259
opj_tcp::m_data
OPJ_BYTE * m_data
data for the tile
Definition j2k.h:287
opj_tcp::tccps
opj_tccp_t * tccps
tile-component coding parameters
Definition j2k.h:281
opj_tcp::ppt_data_size
OPJ_UINT32 ppt_data_size
Number of bytes stored inside ppt_data.
Definition j2k.h:275
opj_tcp::m_mcc_records
opj_simple_mcc_decorrelation_data_t * m_mcc_records
mcc records
Definition j2k.h:303
opj_tcp::ppt_data
OPJ_BYTE * ppt_data
packet header store there for future use in t2_decode_packet
Definition j2k.h:271
opj_tcp::numpocs
OPJ_UINT32 numpocs
number of progression order changes
Definition j2k.h:261
opj_tcp::numlayers
OPJ_UINT32 numlayers
number of layers
Definition j2k.h:254
opj_tcp::ppt_len
OPJ_UINT32 ppt_len
size of ppt_data
Definition j2k.h:277
opj_tcp::cod
OPJ_BITFIELD cod
If cod == 1 --> there was a COD marker for the present tile.
Definition j2k.h:312
opj_tcp::m_data_size
OPJ_UINT32 m_data_size
size of data
Definition j2k.h:289
opj_tcp::m_mct_decoding_matrix
OPJ_FLOAT32 * m_mct_decoding_matrix
the mct decoding matrix
Definition j2k.h:293
opj_tcp::mct_norms
OPJ_FLOAT64 * mct_norms
encoding norms
Definition j2k.h:291
opj_tcp::ppt
OPJ_BITFIELD ppt
If ppt == 1 --> there was a PPT marker for the present tile.
Definition j2k.h:314
opj_tcp::ppt_markers
opj_ppx * ppt_markers
ppt markers data (table indexed by Zppt)
Definition j2k.h:268
opj_tcp::m_mct_coding_matrix
OPJ_FLOAT32 * m_mct_coding_matrix
the mct coding matrix
Definition j2k.h:295
opj_tcp::m_mct_records
opj_mct_data_t * m_mct_records
mct records
Definition j2k.h:297
opj_tcp::distoratio
OPJ_FLOAT32 distoratio[100]
PSNR values.
Definition j2k.h:279
opj_thread_pool_t
Definition thread.c:605