62 #define J2K_CP_CSTY_PRT 0x01
63 #define J2K_CP_CSTY_SOP 0x02
64 #define J2K_CP_CSTY_EPH 0x04
65 #define J2K_CCP_CSTY_PRT 0x01
66 #define J2K_CCP_QNTSTY_NOQNT 0
67 #define J2K_CCP_QNTSTY_SIQNT 1
68 #define J2K_CCP_QNTSTY_SEQNT 2
70 #define GRK_J2K_DEFAULT_CBLK_DATA_SIZE 8192
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_RGN 0xff5e
81 #define J2K_MS_QCD 0xff5c
82 #define J2K_MS_QCC 0xff5d
83 #define J2K_MS_POC 0xff5f
84 #define J2K_MS_TLM 0xff55
85 #define J2K_MS_PLM 0xff57
86 #define J2K_MS_PLT 0xff58
87 #define J2K_MS_PPM 0xff60
88 #define J2K_MS_PPT 0xff61
89 #define J2K_MS_SOP 0xff91
90 #define J2K_MS_EPH 0xff92
91 #define J2K_MS_CRG 0xff63
92 #define J2K_MS_COM 0xff64
93 #define J2K_MS_CBD 0xff78
94 #define J2K_MS_MCC 0xff75
95 #define J2K_MS_MCT 0xff74
96 #define J2K_MS_MCO 0xff77
100 struct TileProcessor;
150 virtual bool compress_tile(uint16_t tile_index, uint8_t *p_data, uint64_t data_size) = 0;
154 virtual void dump(uint32_t flag, FILE *out_stream) = 0;
192 bool compress_tile(uint16_t tile_index, uint8_t *p_data, uint64_t data_size);
196 void dump(uint32_t flag, FILE *out_stream);
257 bool exec(std::vector<j2k_procedure> &p_procedure_list);
279 bool read_unk(uint16_t *output_marker);
Definition: GrkImage.h:11
Definition: TileCache.h:39
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
@ GRK_LRCP
layer-resolution-component-precinct order
Definition: grok.h:291
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: BitIO.cpp:23
const uint32_t max_num_tile_parts
Definition: CodeStream.h:51
const uint32_t max_precision_jpeg_2000
Definition: CodeStream.h:46
const uint32_t max_num_components
Definition: CodeStream.h:47
const uint32_t default_number_mcc_records
Definition: CodeStream.h:59
const uint32_t default_header_size
Definition: CodeStream.h:58
const uint32_t SPCod_SPCoc_len
Definition: CodeStream.h:35
const uint32_t max_num_tiles
Definition: CodeStream.h:49
bool j2k_init_mct_encoding(TileCodingParams *p_tcp, GrkImage *p_image)
Definition: CodeStream.cpp:258
const GRK_PROG_ORDER GRK_COMP_PARAM_DEFAULT_PROG_ORDER
Definition: CodeStream.h:42
const uint32_t default_number_mct_records
Definition: CodeStream.h:60
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKW
Definition: CodeStream.h:40
bool(* j2k_procedure)(CodeStream *codeStream)
Definition: CodeStream.h:103
const uint32_t grk_marker_length
Definition: CodeStream.h:33
const uint32_t tlm_len_per_tile_part
Definition: CodeStream.h:37
char * j2k_convert_progression_order(GRK_PROG_ORDER prg_order)
Converts an enum type progression order to string type.
Definition: CodeStream.cpp:423
const uint32_t sot_marker_segment_len
Definition: CodeStream.h:32
const uint32_t default_numbers_segments
Definition: CodeStream.h:57
const uint32_t max_num_tile_parts_per_tile
Definition: CodeStream.h:50
const uint32_t GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION
Definition: CodeStream.h:43
const uint32_t cod_coc_len
Definition: CodeStream.h:36
const uint32_t max_supported_precision
Definition: CodeStream.h:56
const uint32_t max_tile_part_size
Definition: CodeStream.h:53
static bool j2k_decompress_tile(CodeStream *codeStream)
Definition: CodeStream.cpp:195
bool(* marker_callback)(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Definition: CodeStream.h:105
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKH
Definition: CodeStream.h:41
const uint32_t max_passes_per_segment
Definition: CodeStream.h:48
Code stream index info.
Definition: grok.h:1161
Code stream info v2.
Definition: grok.h:1104
Compress parameters.
Definition: grok.h:446
Core decompress parameters.
Definition: grok.h:687
Plugin tile.
Definition: grok.h:1254
Byte input-output stream.
Definition: BufferedStream.h:38
Definition: CodeStream.h:163
bool copy_default_tcp(void)
Definition: CodeStream.cpp:2572
bool read_unk(uint16_t *output_marker)
Reads an unknown marker.
Definition: CodeStream.cpp:1592
bool compress_validation(void)
Definition: CodeStream.cpp:2736
CodeStream(bool decompress, BufferedStream *stream)
Definition: CodeStream.cpp:727
bool init_compress(grk_cparameters *p_param, GrkImage *p_image)
Definition: CodeStream.cpp:1661
bool write_tile_part(TileProcessor *tileProcessor)
Definition: CodeStream.cpp:2485
bool decompress_validation(void)
Definition: CodeStream.cpp:1484
bool decompress_tiles(void)
Definition: CodeStream.cpp:1152
bool wholeTileDecompress
Definition: CodeStream.h:353
int32_t tileIndexToDecode()
Definition: CodeStream.cpp:809
TileCodingParams * get_current_decode_tcp(void)
Definition: CodeStream.cpp:1528
bool read_short(uint16_t *val)
Definition: CodeStream.cpp:1536
bool compress_tile(uint16_t tile_index, uint8_t *p_data, uint64_t data_size)
Definition: CodeStream.cpp:2194
bool post_write_tile(TileProcessor *tileProcessor)
Definition: CodeStream.cpp:2527
grk_plugin_tile * current_plugin_tile
Definition: CodeStream.h:354
GrkImage * get_image(void)
Definition: CodeStream.cpp:844
BufferedStream * getStream()
Definition: CodeStream.cpp:801
GrkImage * getCompositeImage()
Definition: CodeStream.cpp:813
bool m_headerError
Definition: CodeStream.h:357
std::map< uint32_t, TileProcessor * > m_processors
Definition: CodeStream.h:337
bool start_compress(void)
Definition: CodeStream.cpp:1642
bool read_header(grk_header_info *header_info)
Main header reading function handler.
Definition: CodeStream.cpp:853
uint16_t m_marker_scratch_size
Definition: CodeStream.h:346
grk_codestream_info_v2 * get_cstr_info(void)
Definition: CodeStream.cpp:1495
CodingParams m_cp
Coding parameters.
Definition: CodeStream.h:294
std::vector< j2k_procedure > m_validation_list
the list of validation procedures to follow to make sure the code is valid
Definition: CodeStream.h:300
GrkImage * m_output_image
Definition: CodeStream.h:291
bool exec(std::vector< j2k_procedure > &p_procedure_list)
Executes the given procedures on the given codec.
Definition: CodeStream.cpp:792
bool end_decompress(void)
Reading function used after code stream if necessary.
Definition: CodeStream.cpp:1638
bool decompress_tile()
Definition: CodeStream.cpp:1346
int32_t m_tile_ind_to_dec
index of single tile to decompress; !!! initialized to -1 !!!
Definition: CodeStream.h:342
bool decompress(grk_plugin_tile *tile)
Definition: CodeStream.cpp:1132
bool compress(grk_plugin_tile *tile)
Definition: CodeStream.cpp:2110
bool exec_decompress()
Definition: CodeStream.cpp:1139
uint32_t m_nb_tile_parts_correction
Definition: CodeStream.h:356
bool process_marker(const marker_handler *marker_handler, uint16_t marker_size)
Definition: CodeStream.cpp:1503
bool decompress_tile_t2(TileProcessor *tileProcessor)
Definition: CodeStream.cpp:1461
TileProcessor * allocateProcessor(uint16_t tile_index)
Definition: CodeStream.cpp:817
bool need_nb_tile_parts_correction(bool *p_correction_needed)
Checks for invalid number of tile-parts in SOT marker (TPsot==TNsot).
void init_decompress(grk_dparameters *p_param)
Set up decompressor function handler.
Definition: CodeStream.cpp:1125
bool read_marker(void)
Definition: CodeStream.cpp:1555
bool m_multiTile
Only valid for decoding.
Definition: CodeStream.h:349
bool decompress_tile_t2t1(TileProcessor *tileProcessor)
Definition: CodeStream.cpp:1423
bool parse_tile_header_markers(bool *can_decode_tile_data)
Definition: CodeStream.cpp:2237
uint8_t * m_marker_scratch
Definition: CodeStream.h:345
const marker_handler * get_marker_handler(uint16_t id)
Reads the lookup table containing all the marker, status and action, and returns the handler associat...
Definition: CodeStream.cpp:1545
bool read_header_procedure(void)
Definition: CodeStream.cpp:1021
bool update_rates(void)
Definition: CodeStream.cpp:2669
BufferedStream * m_stream
Definition: CodeStream.h:334
grk_codestream_index * get_cstr_index()
Definition: CodeStream.cpp:1499
~CodeStream()
Definition: CodeStream.cpp:780
bool set_decompress_window(grk_rect_u32 window)
Sets the given area to be decompressed.
Definition: CodeStream.cpp:935
TileCache * m_tileCache
Definition: CodeStream.h:332
bool isDecodingTilePartHeader()
Definition: CodeStream.cpp:1525
std::vector< j2k_procedure > m_procedure_list
the list of procedures to exec
Definition: CodeStream.h:297
uint16_t m_curr_marker
Definition: CodeStream.h:352
bool mct_validation(void)
Definition: CodeStream.cpp:1573
bool get_end_header(void)
Definition: CodeStream.cpp:1568
std::vector< GrkImage * > getAllImages(void)
Definition: CodeStream.cpp:848
TileProcessor * m_tileProcessor
current TileProcessor
Definition: CodeStream.h:330
bool end_compress(void)
Definition: CodeStream.cpp:2226
TileProcessor * currentProcessor(void)
Definition: CodeStream.cpp:834
std::map< uint16_t, marker_handler * > marker_map
Definition: CodeStream.h:327
grk_codestream_index * cstr_index
helper used to write the index file
Definition: CodeStream.h:303
GrkImage * getHeaderImage(void)
Definition: CodeStream.cpp:805
bool m_nb_tile_parts_correction_checked
Definition: CodeStream.h:355
GrkImage * m_headerImage
Definition: CodeStream.h:315
void dump(uint32_t flag, FILE *out_stream)
Definition: CodeStream.cpp:1491
bool init_header_writing(void)
Definition: CodeStream.cpp:2453
EncoderState m_encoder
Definition: CodeStream.h:288
DecoderState m_decompressor
Definition: CodeStream.h:287
Coding parameters.
Definition: CodingParams.h:238
Definition: CodingParams.h:307
Definition: CodingParams.h:354
Definition: CodeStream.h:119
virtual grk_codestream_index * get_cstr_index(void)=0
virtual GrkImage * get_image(uint16_t tileIndex)=0
virtual GrkImage * get_image(void)=0
virtual bool decompress(grk_plugin_tile *tile)=0
virtual grk_codestream_info_v2 * get_cstr_info(void)=0
virtual bool set_decompress_window(grk_rect_u32 window)=0
Set decompress window function handler.
virtual void dump(uint32_t flag, FILE *out_stream)=0
virtual bool start_compress(void)=0
virtual bool end_compress(void)=0
virtual bool init_compress(grk_cparameters *p_param, GrkImage *p_image)=0
virtual void init_decompress(grk_dparameters *p_param)=0
Set up decompressor function handler.
virtual bool compress_tile(uint16_t tile_index, uint8_t *p_data, uint64_t data_size)=0
virtual ~ICodeStream()
Definition: CodeStream.h:121
virtual bool read_header(grk_header_info *header_info)=0
Main header reading function handler.
virtual bool compress(grk_plugin_tile *tile)=0
virtual bool decompress_tile(uint16_t tile_index)=0
decompress tile
virtual bool end_decompress(void)=0
Reading function used after code stream if necessary.
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition: CodingParams.h:121
Tile compressor/decompressor.
Definition: TileProcessor.h:70
Definition: CodeStream.h:107
uint32_t states
value of the state when the marker can appear
Definition: CodeStream.h:114
marker_callback callback
action linked to the marker
Definition: CodeStream.h:116
uint16_t id
marker value
Definition: CodeStream.h:112
marker_handler(uint16_t ID, uint32_t flags, marker_callback cb)
Definition: CodeStream.h:108