Go to the documentation of this file.
58 void *p_dest_data, uint64_t nb_elem);
68 uint64_t pos, uint32_t len);
98 uint16_t header_size);
108 uint16_t header_size);
133 uint16_t header_size);
161 uint32_t second_comp_no);
183 uint16_t header_size);
200 uint16_t header_size);
212 uint32_t second_comp_no);
234 uint16_t header_size);
236 uint16_t
getPocSize(uint32_t l_nb_comp, uint32_t l_nb_poc);
254 uint16_t header_size);
265 uint16_t header_size);
274 uint16_t header_size);
301 uint16_t header_size);
311 uint16_t header_size);
323 uint16_t header_size);
342 uint16_t header_size);
373 uint32_t first_comp_no, uint32_t second_comp_no);
404 uint32_t compno, uint8_t *p_header_data, uint16_t *header_size);
426 uint32_t first_comp_no, uint32_t second_comp_no);
455 uint8_t *p_header_data, uint16_t *header_size);
475 uint16_t header_size);
496 uint16_t header_size);
514 uint16_t header_size);
535 uint16_t header_size);
587 uint16_t header_size);
@ J2K_DEC_STATE_ERR
the decoding process has encountered an error
Definition: CodingParams.h:295
bool j2k_read_sot(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Read SOT (Start of tile part) marker.
Definition: markers.cpp:1163
Code stream index info.
Definition: grok.h:1147
bool j2k_write_cbd(CodeStream *codeStream)
Writes the CBD marker (Component bit depth definition)
Definition: markers.cpp:1985
uint16_t m_total_tile_parts
Total num of tile parts in whole image = num tiles* num tileparts in each tile.
Definition: CodingParams.h:352
uint8_t * ppt_data
packet header store there for future use in t2_decode_packet
Definition: CodingParams.h:149
Definition: PPMMarker.h:34
EncoderState m_encoder
Definition: CodeStream.h:300
void j2k_read_float32_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:78
bool write_byte(uint8_t value)
Definition: BufferedStream.cpp:182
bool read(uint8_t *p_header_data, uint16_t header_size)
Read a PPM marker (Packed headers, main header)
Definition: PPMMarker.cpp:48
const uint32_t default_number_mct_records
Definition: CodeStream.h:60
Definition: SIZMarker.h:26
Definition: PPMMarker.h:28
bool j2k_write_mcc_record(grk_simple_mcc_decorrelation_data *p_mcc_record, BufferedStream *stream)
Writes the MCC marker (Multiple Component Collection)
Definition: markers.cpp:1523
bool j2k_read_soc(CodeStream *codeStream)
Reads a SOC marker (Start of Codestream)
Definition: markers.cpp:148
bool j2k_read_plm(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a PLM marker (Packet length, main header marker)
Definition: markers.cpp:970
DecoderState m_decompressor
Definition: CodeStream.h:299
BufferedStream * getStream()
Definition: CodeStream.cpp:999
bool j2k_read_mcc(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a MCC marker (Multiple Component Collection)
Definition: markers.cpp:1616
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition: CodingParams.h:121
MCT data.
Definition: CodingParams.h:96
TileComponentCodingParams * tccps
tile-component coding parameters
Definition: CodingParams.h:163
#define J2K_MS_RGN
RGN marker value.
Definition: CodeStream.h:80
J2K_MCT_ELEMENT_TYPE
Type of elements storing in the MCT data.
Definition: CodingParams.h:31
bool j2k_write_poc(CodeStream *codeStream)
Writes the POC marker (Progression Order Change)
Definition: markers.cpp:781
Byte input-output stream.
Definition: BufferedStream.h:38
grk_image_comp * comps
image components
Definition: grok.h:895
#define J2K_MS_EOC
EOC marker value.
Definition: CodeStream.h:75
bool write_short(uint16_t value)
Definition: BufferedStream.cpp:185
uint32_t m_is_irreversible
Definition: CodingParams.h:112
bool read(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Decompress a SIZ marker (image and tile size)
Definition: SIZMarker.cpp:66
void GRK_WARN(const char *fmt,...)
Definition: logger.cpp:49
bool j2k_read_tlm(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a TLM marker (Tile Length Marker)
Definition: markers.cpp:2063
#define J2K_MS_CBD
CBD marker value.
Definition: CodeStream.h:93
void j2k_read_float64_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:82
static const j2k_mct_function j2k_mct_read_functions_to_int32[]
Definition: markers.cpp:39
@ GRK_NUM_PROGRESSION_ORDERS
Definition: grok.h:296
bool flush()
Flush stream to disk.
Definition: BufferedStream.cpp:277
void * grk_calloc(size_t num, size_t size)
Allocate a memory block with elements initialized to 0.
Definition: MemManager.cpp:111
void j2k_read_int32_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:74
uint64_t main_head_start
main header start position (SOC position)
Definition: grok.h:1149
bool j2k_write_qcd(CodeStream *codeStream)
Writes the QCD marker (quantization default)
Definition: markers.cpp:633
TileProcessor * currentProcessor(void)
Definition: CodeStream.cpp:1017
void j2k_read_int16_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:70
Quantizer quant
Definition: CodingParams.h:60
grk_mct_data * m_offset_array
Definition: CodingParams.h:111
bool read_SQcd_SQcc(CodeStream *codeStream, bool fromQCC, uint32_t comp_no, uint8_t *p_header_data, uint16_t *header_size)
Definition: Quantizer.cpp:188
#define J2K_CP_CSTY_PRT
Definition: CodeStream.h:62
bool j2k_write_eoc(CodeStream *codeStream)
Writes the EOC marker (End of Codestream)
Definition: markers.cpp:1205
void grk_free(void *ptr)
Deallocates or frees a memory block.
Definition: MemManager.cpp:141
uint8_t numresolutions
number of resolutions
Definition: CodingParams.h:54
grk_marker_info * marker
list of markers
Definition: grok.h:1157
grk_image * m_input_image
internal/private encoded / decompressed image
Definition: CodeStream.h:303
uint16_t numcomps
number of components in the image
Definition: grok.h:891
grk_codestream_index * cstr_index
helper used to write the index file
Definition: CodeStream.h:318
#define J2K_MS_MCT
MCT marker value.
Definition: CodeStream.h:95
bool read(uint8_t *p_header_data, uint16_t header_size)
Definition: LengthMarkers.cpp:47
uint32_t m_index
Definition: CodingParams.h:108
#define J2K_MS_SOC
SOC marker value.
Definition: CodeStream.h:72
J2K_MCT_ELEMENT_TYPE m_element_type
Definition: CodingParams.h:97
uint16_t ccap[32]
Definition: CodingParams.h:241
uint32_t j2k_get_SPCod_SPCoc_size(CodeStream *codeStream, uint32_t comp_no)
Gets the size taken by writing a SPCod or SPCoc for the given tile and component.
Definition: markers.cpp:2092
bool j2k_write_qcc(CodeStream *codeStream, uint32_t comp_no)
Definition: markers.cpp:686
const uint32_t MCT_ELEMENT_SIZE[]
Definition: markers.h:26
bool j2k_write_siz(CodeStream *codeStream)
Writes the SIZ marker (image and tile size)
Definition: markers.cpp:178
grk_ppx * ppt_markers
ppt markers data (table indexed by Zppt)
Definition: CodingParams.h:146
bool write_24(uint32_t value)
Definition: BufferedStream.cpp:188
uint16_t type
marker type
Definition: grok.h:958
bool j2k_read_siz(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a SIZ marker (image and tile size)
Definition: markers.cpp:286
J2K_MCT_ARRAY_TYPE
Type of MCT array.
Definition: CodingParams.h:41
#define J2K_MS_QCD
QCD marker value.
Definition: CodeStream.h:81
bool ppt
If ppt == true --> there was a PPT marker for the present tile.
Definition: CodingParams.h:195
void j2k_read_int16_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:54
bool j2k_compare_qcc(CodeStream *codeStream, uint32_t first_comp_no, uint32_t second_comp_no)
Compare QCC markers (quantization component)
Definition: markers.cpp:719
void j2k_read_int32_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:58
static ui32 population_count(ui32 val)
Definition: ojph_arch.h:73
const uint32_t default_number_mcc_records
Definition: CodeStream.h:59
bool j2k_read_crg(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a CRG marker (Component registration)
Definition: markers.cpp:940
bool j2k_read_mco(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a MCO marker (Multiple Component Transform Ordering)
Definition: markers.cpp:1873
bool j2k_read_ppt(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a PPT marker (Packed packet headers, tile-part header)
Definition: markers.cpp:1034
bool j2k_write_SPCod_SPCoc(CodeStream *codeStream, uint32_t comp_no)
Writes a SPCod or SPCoc element, i.e.
Definition: markers.cpp:2139
float * m_mct_decoding_matrix
the mct decoding matrix
Definition: CodingParams.h:176
#define GRK_MAX_COMMENT_LENGTH
Definition: grok.h:351
size_t ppt_len
size of ppt_data
Definition: CodingParams.h:155
bool j2k_write_tlm_end(CodeStream *codeStream)
End writing the updated tlm.
Definition: markers.cpp:2087
uint64_t codestream_size
code stream's size
Definition: grok.h:1153
uint32_t marknum
number of markers
Definition: grok.h:1155
#define J2K_CP_CSTY_EPH
Definition: CodeStream.h:64
void j2k_write_float_to_int16(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:86
bool j2k_write_cod(CodeStream *codeStream)
Writes the COD marker (Coding style default)
Definition: markers.cpp:385
uint32_t len
length, marker value included
Definition: grok.h:962
bool j2k_write_mco(CodeStream *codeStream)
Writes the MCO marker (Multiple component transformation ordering)
Definition: markers.cpp:1834
bool j2k_write_mct_record(grk_mct_data *p_mct_record, BufferedStream *stream)
Writes the MCT marker (Multiple Component Transform)
Definition: markers.cpp:1357
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
Coding parameters.
Definition: CodingParams.h:235
bool j2k_read_com(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a COM marker (comments)
Definition: markers.cpp:335
bool j2k_read_SQcd_SQcc(CodeStream *codeStream, bool fromQCC, uint32_t comp_no, uint8_t *p_header_data, uint16_t *header_size)
Reads a SQcd or SQcc element, i.e.
Definition: markers.cpp:2328
Definition: CodeStream.h:164
bool j2k_write_coc(CodeStream *codeStream, uint32_t comp_no)
Definition: markers.cpp:534
bool j2k_read_plt(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a PLT marker (Packet length, tile-part header)
Definition: markers.cpp:988
#define J2K_MS_COD
COD marker value.
Definition: CodeStream.h:78
bool j2k_write_cap(CodeStream *codeStream)
Writes the CAP marker.
Definition: markers.cpp:227
CodingParams m_cp
Coding parameters.
Definition: CodeStream.h:309
bool j2k_write_tlm_begin(CodeStream *codeStream)
Begin writing the TLM marker (Tile Length Marker)
Definition: markers.cpp:2073
static void j2k_copy_tile_component_parameters(CodeStream *codeStream)
Copies the tile component parameters of all the component from the first tile component.
Definition: markers.cpp:511
bool j2k_write_soc(CodeStream *codeStream)
Writes the SOC marker (Start Of Codestream)
Definition: markers.cpp:136
const uint32_t SPCod_SPCoc_len
Definition: CodeStream.h:35
#define J2K_CCP_CSTY_PRT
Definition: CodeStream.h:65
uint16_t getPocSize(uint32_t nb_comp, uint32_t nb_poc)
Definition: markers.cpp:775
uint32_t pcap
Definition: CodingParams.h:239
uint32_t m_index
Definition: CodingParams.h:99
void j2k_write(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:43
bool merge(void)
Merges all PPM markers read (Packed headers, main header)
Definition: PPMMarker.cpp:108
char * comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: CodingParams.h:252
bool j2k_add_mhmarker(grk_codestream_index *cstr_index, uint32_t type, uint64_t pos, uint32_t len)
Add main header marker information.
Definition: markers.cpp:106
bool j2k_read_poc(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a POC marker (Progression Order Change)
Definition: markers.cpp:846
bool j2k_read_cap(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a CAP marker.
Definition: markers.cpp:193
uint8_t * ppt_buffer
used to keep a track of the allocated memory
Definition: CodingParams.h:151
PPMMarker * ppm_marker
Definition: CodingParams.h:260
bool sgnd
Definition: grok.h:867
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1159
bool write_end(void)
Definition: LengthMarkers.cpp:183
bool j2k_add_mct(TileCodingParams *p_tcp, grk_image *p_image, uint32_t index)
Definition: markers.cpp:1918
bool j2k_read_cod(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a COD marker (Coding Style defaults)
Definition: markers.cpp:430
uint32_t m_nb_mcc_records
the number of mct records.
Definition: CodingParams.h:188
bool j2k_write_all_coc(CodeStream *codeStream)
Writes COC marker for each component.
Definition: markers.cpp:1296
#define GRK_NUM_COMMENTS_SUPPORTED
Definition: grok.h:350
uint32_t m_data_size
Definition: PPMMarker.h:30
bool j2k_write_com(CodeStream *codeStream)
Writes the COM marker (comment)
Definition: markers.cpp:293
bool j2k_read_qcc(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a QCC marker (Quantization component)
Definition: markers.cpp:731
Copyright (C) 2016-2020 Grok Image Compression Inc.
Definition: BitIO.cpp:23
bool read(uint8_t *p_header_data, uint16_t header_size)
Decompress a SOT marker (Start of tile-part)
Definition: SOTMarker.cpp:110
void write_update(uint16_t tileIndex, uint32_t tile_part_size)
Definition: LengthMarkers.cpp:178
size_t ppt_data_size
Number of bytes stored inside ppt_data.
Definition: CodingParams.h:153
#define J2K_MS_CAP
CAP marker value.
Definition: CodeStream.h:76
int32_t m_dc_level_shift
the dc_level_shift
Definition: CodingParams.h:88
bool j2k_merge_ppt(TileCodingParams *p_tcp)
Merges all PPT markers read (Packed packet headers, tile-part header)
Definition: markers.cpp:1112
void * grk_malloc(size_t size)
Allocate an uninitialized memory block.
Definition: MemManager.cpp:105
MCC decorrelation data.
Definition: CodingParams.h:107
TileCodingParams * tcps
tile coding parameters
Definition: CodingParams.h:263
void j2k_read_float32_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:62
#define J2K_MS_MCC
MCC marker value.
Definition: CodeStream.h:94
bool j2k_read_ppm(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a PPM marker (Packed packet headers, main header)
Definition: markers.cpp:1008
void j2k_write_float_to_float64(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:98
uint64_t pos
position in code stream
Definition: grok.h:960
uint8_t * m_data
Definition: PPMMarker.h:29
bool j2k_compare_coc(CodeStream *codeStream, uint32_t first_comp_no, uint32_t second_comp_no)
Compares 2 COC markers (Coding style component)
Definition: markers.cpp:572
void apply_quant(TileComponentCodingParams *src, TileComponentCodingParams *dest)
Definition: Quantizer.cpp:70
bool j2k_read_coc(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a COC marker (Coding Style Component)
Definition: markers.cpp:593
bool write(CodeStream *codeStream, BufferedStream *stream)
Write the SIZ marker (image and tile size)
Definition: SIZMarker.cpp:310
bool j2k_read_rgn(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a RGN marker (Region Of Interest)
Definition: markers.cpp:1224
bool j2k_write_SQcd_SQcc(CodeStream *codeStream, uint32_t comp_no)
Writes a SQcd or SQcc element, i.e.
Definition: markers.cpp:2317
@ J2K_DEC_STATE_MH_SIZ
a SIZ marker is expected
Definition: CodingParams.h:285
void * grk_realloc(void *ptr, size_t new_size)
Reallocate memory blocks.
Definition: MemManager.cpp:135
bool j2k_read_qcd(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a QCD marker (Quantization defaults)
Definition: markers.cpp:662
#define J2K_MS_POC
POC marker value.
Definition: CodeStream.h:83
bool j2k_read_SPCod_SPCoc(CodeStream *codeStream, uint32_t compno, uint8_t *p_header_data, uint16_t *header_size)
Reads a SPCod or SPCoc element, i.e.
Definition: markers.cpp:2178
bool isBinaryComment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: CodingParams.h:254
Marker info.
Definition: grok.h:956
bool j2k_read_mct(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a MCT marker (Multiple Component Transform)
Definition: markers.cpp:1395
size_t num_comments
comments
Definition: CodingParams.h:251
Definition: LengthMarkers.h:88
size_t write_bytes(const uint8_t *p_buffer, size_t p_size)
Write bytes to stream (no correction for endian!).
Definition: BufferedStream.cpp:222
bool j2k_merge_ppm(CodingParams *p_cp)
Merges all PPM markers read (Packed headers, main header)
Definition: markers.cpp:1022
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:295
#define GRK_J2K_MAX_DECOMP_LVLS
Maximum number of decomposition levels authorized.
Definition: grok.h:81
uint8_t * m_data
Definition: CodingParams.h:100
uint32_t m_data_size
Definition: CodingParams.h:101
#define J2K_MS_MCO
MCO marker value.
Definition: CodeStream.h:96
TileCodingParams * get_current_decode_tcp(void)
Definition: CodeStream.cpp:2022
#define J2K_MS_QCC
QCC marker value.
Definition: CodeStream.h:82
uint16_t m_state
Decoder state: used to indicate in which part of the code stream the decompressor is (main header,...
Definition: CodingParams.h:317
uint32_t j2k_get_SQcd_SQcc_size(CodeStream *codeStream, uint32_t comp_no)
Gets the size taken by writing SQcd or SQcc element, i.e.
Definition: markers.cpp:2296
void j2k_update_tlm(CodeStream *codeStream, uint16_t tile_index, uint32_t tile_part_size)
Updates the Tile Length Marker.
Definition: markers.cpp:2082
void(* j2k_mct_function)(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.h:29
void j2k_write_float_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:90
void j2k_write_float_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:94
Definition: LengthMarkers.h:42
bool j2k_write_mct_data_group(CodeStream *codeStream)
Writes the CBD-MCT-MCC-MCO markers (Multi components transform)
Definition: markers.cpp:1269
bool j2k_write_regions(CodeStream *codeStream)
Writes regions of interests.
Definition: markers.cpp:1325
static const j2k_mct_function j2k_mct_read_functions_to_float[]
Definition: markers.cpp:35
bool write_begin(uint16_t totalTileParts)
Definition: LengthMarkers.cpp:153
#define J2K_MS_COC
COC marker value.
Definition: CodeStream.h:79
PacketLengthMarkers * plm_markers
Definition: CodingParams.h:271
grk_simple_mcc_decorrelation_data * m_mcc_records
mcc records
Definition: CodingParams.h:186
grk_mct_data * m_decorrelation_array
Definition: CodingParams.h:110
bool readPLM(uint8_t *p_header_data, uint16_t header_size)
Definition: LengthMarkers.cpp:371
bool j2k_write_epc(CodeStream *codeStream)
Writes EPC ????
Definition: markers.cpp:1341
#define J2K_CP_CSTY_SOP
Definition: CodeStream.h:63
#define GRK_CBLKSTY_HT
high throughput block coding
Definition: grok.h:101
#define GRK_J2K_MAXRLVLS
Maximum number of resolution levels authorized.
Definition: grok.h:82
Image.
Definition: grok.h:879
uint32_t ppt_markers_count
number of ppt markers (reserved size)
Definition: CodingParams.h:144
const uint32_t cod_coc_len
Definition: CodeStream.h:36
uint8_t prec
precision
Definition: grok.h:866
TileLengthMarkers * tlm_markers
Definition: CodingParams.h:270
Definition: SOTMarker.h:28
bool j2k_compare_SPCod_SPCoc(CodeStream *codeStream, uint32_t first_comp_no, uint32_t second_comp_no)
Compare 2 a SPCod/ SPCoc elements, i.e.
Definition: markers.cpp:2108
bool j2k_compare_SQcd_SQcc(CodeStream *codeStream, uint32_t first_comp_no, uint32_t second_comp_no)
Compares 2 SQcd or SQcc element, i.e.
Definition: markers.cpp:2306
void GRK_ERROR(const char *fmt,...)
Definition: logger.cpp:57
uint32_t m_nb_comps
Definition: CodingParams.h:109
bool j2k_write_rgn(CodeStream *codeStream, uint16_t tile_no, uint32_t comp_no, uint32_t nb_comps)
Writes the RGN marker (Region Of Interest)
Definition: markers.cpp:1170
J2K_MCT_ARRAY_TYPE m_array_type
Definition: CodingParams.h:98
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: CodingParams.h:253
#define J2K_MS_COM
COM marker value.
Definition: CodeStream.h:92
bool j2k_read_cbd(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a CBD marker (Component bit depth definition)
Definition: markers.cpp:2024
bool j2k_write_all_qcc(CodeStream *codeStream)
Writes QCC marker for each component.
Definition: markers.cpp:1311
void j2k_read_float64_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:66