Grok  7.6.3
markers.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 namespace grk {
25 
26 const uint32_t MCT_ELEMENT_SIZE[] = { 2, 4, 4, 8 };
27 
28 
29 typedef void (*j2k_mct_function)(const void *p_src_data, void *p_dest_data,
30  uint64_t nb_elem);
31 
32 
33 void j2k_read_int16_to_float(const void *p_src_data, void *p_dest_data,
34  uint64_t nb_elem);
35 void j2k_read_int32_to_float(const void *p_src_data, void *p_dest_data,
36  uint64_t nb_elem);
37 void j2k_read_float32_to_float(const void *p_src_data, void *p_dest_data,
38  uint64_t nb_elem);
39 void j2k_read_float64_to_float(const void *p_src_data, void *p_dest_data,
40  uint64_t nb_elem);
41 
42 void j2k_read_int16_to_int32(const void *p_src_data, void *p_dest_data,
43  uint64_t nb_elem);
44 void j2k_read_int32_to_int32(const void *p_src_data, void *p_dest_data,
45  uint64_t nb_elem);
46 void j2k_read_float32_to_int32(const void *p_src_data, void *p_dest_data,
47  uint64_t nb_elem);
48 void j2k_read_float64_to_int32(const void *p_src_data, void *p_dest_data,
49  uint64_t nb_elem);
50 
51 void j2k_write_float_to_int16(const void *p_src_data, void *p_dest_data,
52  uint64_t nb_elem);
53 void j2k_write_float_to_int32(const void *p_src_data, void *p_dest_data,
54  uint64_t nb_elem);
55 void j2k_write_float_to_float(const void *p_src_data, void *p_dest_data,
56  uint64_t nb_elem);
57 void j2k_write_float_to_float64(const void *p_src_data,
58  void *p_dest_data, uint64_t nb_elem);
59 
67 bool j2k_add_mhmarker( grk_codestream_index *cstr_index, uint32_t type,
68  uint64_t pos, uint32_t len);
69 
75 bool j2k_write_soc(CodeStream *codeStream);
76 
81 bool j2k_read_soc(CodeStream *codeStream);
82 
88 bool j2k_write_siz(CodeStream *codeStream);
89 
97 bool j2k_read_siz(CodeStream *codeStream, uint8_t *p_header_data,
98  uint16_t header_size);
99 
107 bool j2k_read_cap(CodeStream *codeStream, uint8_t *p_header_data,
108  uint16_t header_size);
109 
115 bool j2k_write_cap(CodeStream *codeStream);
116 
122 bool j2k_write_com(CodeStream *codeStream);
123 
132 bool j2k_read_com(CodeStream *codeStream, uint8_t *p_header_data,
133  uint16_t header_size);
139 bool j2k_write_cod(CodeStream *codeStream);
140 
149 bool j2k_read_cod(CodeStream *codeStream, uint8_t *p_header_data,uint16_t header_size);
150 
160 bool j2k_compare_coc(CodeStream *codeStream, uint32_t first_comp_no,
161  uint32_t second_comp_no);
162 
171 bool j2k_write_coc(CodeStream *codeStream, uint32_t comp_no,
172  BufferedStream *stream);
173 
182 bool j2k_read_coc(CodeStream *codeStream, uint8_t *p_header_data,
183  uint16_t header_size);
184 
190 bool j2k_write_qcd(CodeStream *codeStream);
191 
199 bool j2k_read_qcd(CodeStream *codeStream, uint8_t *p_header_data,
200  uint16_t header_size);
201 
211 bool j2k_compare_qcc(CodeStream *codeStream, uint32_t first_comp_no,
212  uint32_t second_comp_no);
213 
223 bool j2k_write_qcc(CodeStream *codeStream, uint16_t tile_index, uint32_t comp_no,
224  BufferedStream *stream);
233 bool j2k_read_qcc(CodeStream *codeStream, uint8_t *p_header_data,
234  uint16_t header_size);
235 
236 uint16_t getPocSize(uint32_t l_nb_comp, uint32_t l_nb_poc);
237 
243 bool j2k_write_poc(CodeStream *codeStream);
244 
245 
253 bool j2k_read_poc(CodeStream *codeStream, uint8_t *p_header_data,
254  uint16_t header_size);
255 
264 bool j2k_read_crg(CodeStream *codeStream, uint8_t *p_header_data,
265  uint16_t header_size);
273 bool j2k_read_tlm(CodeStream *codeStream, uint8_t *p_header_data,
274  uint16_t header_size);
275 
281 bool j2k_write_tlm_end(CodeStream *codeStream);
282 
283 
289 bool j2k_write_tlm_begin(CodeStream *codeStream);
290 
291 
300 bool j2k_read_plm(CodeStream *codeStream, uint8_t *p_header_data,
301  uint16_t header_size);
310 bool j2k_read_plt(CodeStream *codeStream, uint8_t *p_header_data,
311  uint16_t header_size);
312 
322 bool j2k_read_ppm(CodeStream *codeStream, uint8_t *p_header_data,
323  uint16_t header_size);
324 
331 bool j2k_merge_ppm(CodingParams *p_cp);
332 
341 bool j2k_read_ppt(CodeStream *codeStream, uint8_t *p_header_data,
342  uint16_t header_size);
343 
350 bool j2k_merge_ppt(TileCodingParams *p_tcp);
351 
360 bool j2k_read_sot(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size);
361 
362 
372 bool j2k_compare_SPCod_SPCoc(CodeStream *codeStream,
373  uint32_t first_comp_no, uint32_t second_comp_no);
374 
383 bool j2k_write_SPCod_SPCoc(CodeStream *codeStream, uint32_t comp_no);
384 
393 uint32_t j2k_get_SPCod_SPCoc_size(CodeStream *codeStream, uint32_t comp_no);
394 
403 bool j2k_read_SPCod_SPCoc(CodeStream *codeStream,
404  uint32_t compno, uint8_t *p_header_data, uint16_t *header_size);
405 
414 uint32_t j2k_get_SQcd_SQcc_size(CodeStream *codeStream, uint32_t comp_no);
415 
425 bool j2k_compare_SQcd_SQcc(CodeStream *codeStream,
426  uint32_t first_comp_no, uint32_t second_comp_no);
427 
435 bool j2k_write_SQcd_SQcc(CodeStream *codeStream,uint32_t comp_no);
436 
440 void j2k_update_tlm(CodeStream *codeStream, uint16_t tile_index, uint32_t tile_part_size);
441 
454 bool j2k_read_SQcd_SQcc(CodeStream *codeStream, bool fromQCC,uint32_t compno,
455  uint8_t *p_header_data, uint16_t *header_size);
456 
464 bool j2k_write_mct_record(grk_mct_data *p_mct_record, BufferedStream *stream);
465 
474 bool j2k_read_mct(CodeStream *codeStream, uint8_t *p_header_data,
475  uint16_t header_size);
476 
485  BufferedStream *stream);
486 
495 bool j2k_read_mcc(CodeStream *codeStream, uint8_t *p_header_data,
496  uint16_t header_size);
497 
503 bool j2k_write_mco(CodeStream *codeStream);
504 
513 bool j2k_read_mco(CodeStream *codeStream, uint8_t *p_header_data,
514  uint16_t header_size);
515 
516 bool j2k_add_mct(TileCodingParams *p_tcp, grk_image *p_image, uint32_t index);
517 
518 
524 bool j2k_write_cbd(CodeStream *codeStream);
525 
534 bool j2k_read_cbd(CodeStream *codeStream, uint8_t *p_header_data,
535  uint16_t header_size);
536 
542 bool j2k_write_all_coc(CodeStream *codeStream);
543 
549 bool j2k_write_all_qcc(CodeStream *codeStream);
550 
556 bool j2k_write_regions(CodeStream *codeStream);
557 
563 bool j2k_write_epc(CodeStream *codeStream);
564 
565 void j2k_update_tlm(CodeStream *codeStream, uint16_t tile_index, uint32_t tile_part_size) ;
566 
576 bool j2k_write_rgn(CodeStream *codeStream, uint16_t tile_no, uint32_t comp_no,
577  uint32_t nb_comps);
578 
586 bool j2k_read_rgn(CodeStream *codeStream, uint8_t *p_header_data,
587  uint16_t header_size);
588 
594 bool j2k_write_eoc(CodeStream *codeStream);
595 
601 bool j2k_write_mct_data_group(CodeStream *codeStream);
602 
603 }
604 
grk::J2K_DEC_STATE_ERR
@ J2K_DEC_STATE_ERR
the decoding process has encountered an error
Definition: CodingParams.h:300
grk::j2k_read_sot
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:1161
_grk_codestream_index
Code stream index info.
Definition: grok.h:1158
grk::j2k_write_cbd
bool j2k_write_cbd(CodeStream *codeStream)
Writes the CBD marker (Component bit depth definition)
Definition: markers.cpp:1978
grk::EncoderState::m_total_tile_parts
uint16_t m_total_tile_parts
Total num of tile parts in whole image = num tiles* num tileparts in each tile.
Definition: CodingParams.h:357
grk::TileCodingParams::ppt_data
uint8_t * ppt_data
packet header store there for future use in t2_decode_packet
Definition: CodingParams.h:149
grk::PPMMarker
Definition: PPMMarker.h:34
grk::CodeStream::m_encoder
EncoderState m_encoder
Definition: CodeStream.h:300
grk::j2k_read_float32_to_int32
void j2k_read_float32_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:78
grk::BufferedStream::write_byte
bool write_byte(uint8_t value)
Definition: BufferedStream.cpp:182
grk::PPMMarker::read
bool read(uint8_t *p_header_data, uint16_t header_size)
Read a PPM marker (Packed headers, main header)
Definition: PPMMarker.cpp:48
grk::default_number_mct_records
const uint32_t default_number_mct_records
Definition: CodeStream.h:60
grk::SIZMarker
Definition: SIZMarker.h:26
grk::grk_ppx
Definition: PPMMarker.h:28
grk::j2k_write_mcc_record
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:1516
grk::j2k_read_soc
bool j2k_read_soc(CodeStream *codeStream)
Reads a SOC marker (Start of Codestream)
Definition: markers.cpp:148
grk::j2k_read_plm
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:968
grk::CodeStream::m_decompressor
DecoderState m_decompressor
Definition: CodeStream.h:299
grk::CodeStream::getStream
BufferedStream * getStream()
Definition: CodeStream.cpp:999
grk::j2k_read_mcc
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:1609
grk::TileCodingParams
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition: CodingParams.h:121
grk::grk_mct_data
MCT data.
Definition: CodingParams.h:96
grk::TileCodingParams::tccps
TileComponentCodingParams * tccps
tile-component coding parameters
Definition: CodingParams.h:163
J2K_MS_RGN
#define J2K_MS_RGN
RGN marker value.
Definition: CodeStream.h:80
grk::J2K_MCT_ELEMENT_TYPE
J2K_MCT_ELEMENT_TYPE
Type of elements storing in the MCT data.
Definition: CodingParams.h:31
grk::j2k_write_poc
bool j2k_write_poc(CodeStream *codeStream)
Writes the POC marker (Progression Order Change)
Definition: markers.cpp:779
grk::BufferedStream
Byte input-output stream.
Definition: BufferedStream.h:38
_grk_image::comps
grk_image_comp * comps
image components
Definition: grok.h:906
J2K_MS_EOC
#define J2K_MS_EOC
EOC marker value.
Definition: CodeStream.h:75
grk::BufferedStream::write_short
bool write_short(uint16_t value)
Definition: BufferedStream.cpp:185
grk::grk_simple_mcc_decorrelation_data::m_is_irreversible
uint32_t m_is_irreversible
Definition: CodingParams.h:112
grk::SIZMarker::read
bool read(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Decompress a SIZ marker (image and tile size)
Definition: SIZMarker.cpp:65
grk::GRK_WARN
void GRK_WARN(const char *fmt,...)
Definition: logger.cpp:49
grk::j2k_read_tlm
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:2056
J2K_MS_CBD
#define J2K_MS_CBD
CBD marker value.
Definition: CodeStream.h:93
grk::j2k_read_float64_to_int32
void j2k_read_float64_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:82
grk::j2k_mct_read_functions_to_int32
static const j2k_mct_function j2k_mct_read_functions_to_int32[]
Definition: markers.cpp:39
GRK_NUM_PROGRESSION_ORDERS
@ GRK_NUM_PROGRESSION_ORDERS
Definition: grok.h:296
grk::BufferedStream::flush
bool flush()
Flush stream to disk.
Definition: BufferedStream.cpp:277
grk::grk_calloc
void * grk_calloc(size_t num, size_t size)
Allocate a memory block with elements initialized to 0.
Definition: MemManager.cpp:111
grk::j2k_read_int32_to_int32
void j2k_read_int32_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:74
_grk_codestream_index::main_head_start
uint64_t main_head_start
main header start position (SOC position)
Definition: grok.h:1160
grk::j2k_write_qcd
bool j2k_write_qcd(CodeStream *codeStream)
Writes the QCD marker (quantization default)
Definition: markers.cpp:631
grk::CodeStream::currentProcessor
TileProcessor * currentProcessor(void)
Definition: CodeStream.cpp:1017
grk::j2k_read_int16_to_int32
void j2k_read_int16_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:70
grk::TileComponentCodingParams::quant
Quantizer quant
Definition: CodingParams.h:60
grk::grk_simple_mcc_decorrelation_data::m_offset_array
grk_mct_data * m_offset_array
Definition: CodingParams.h:111
grk::Quantizer::read_SQcd_SQcc
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
J2K_CP_CSTY_PRT
#define J2K_CP_CSTY_PRT
Definition: CodeStream.h:62
grk::j2k_write_eoc
bool j2k_write_eoc(CodeStream *codeStream)
Writes the EOC marker (End of Codestream)
Definition: markers.cpp:1203
grk::grk_free
void grk_free(void *ptr)
Deallocates or frees a memory block.
Definition: MemManager.cpp:141
grk::TileComponentCodingParams::numresolutions
uint8_t numresolutions
number of resolutions
Definition: CodingParams.h:54
_grk_codestream_index::marker
grk_marker_info * marker
list of markers
Definition: grok.h:1168
grk::CodeStream::m_input_image
grk_image * m_input_image
internal/private encoded / decompressed image
Definition: CodeStream.h:303
_grk_image::numcomps
uint16_t numcomps
number of components in the image
Definition: grok.h:902
grk::CodeStream::cstr_index
grk_codestream_index * cstr_index
helper used to write the index file
Definition: CodeStream.h:318
J2K_MS_MCT
#define J2K_MS_MCT
MCT marker value.
Definition: CodeStream.h:95
grk::TileLengthMarkers::read
bool read(uint8_t *p_header_data, uint16_t header_size)
Definition: LengthMarkers.cpp:47
grk::grk_simple_mcc_decorrelation_data::m_index
uint32_t m_index
Definition: CodingParams.h:108
J2K_MS_SOC
#define J2K_MS_SOC
SOC marker value.
Definition: CodeStream.h:72
grk::grk_mct_data::m_element_type
J2K_MCT_ELEMENT_TYPE m_element_type
Definition: CodingParams.h:97
grk::CodingParams::ccap
uint16_t ccap[32]
Definition: CodingParams.h:246
grk::j2k_get_SPCod_SPCoc_size
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:2085
grk::j2k_write_qcc
bool j2k_write_qcc(CodeStream *codeStream, uint32_t comp_no)
Definition: markers.cpp:684
grk::MCT_ELEMENT_SIZE
const uint32_t MCT_ELEMENT_SIZE[]
Definition: markers.h:26
grk::j2k_write_siz
bool j2k_write_siz(CodeStream *codeStream)
Writes the SIZ marker (image and tile size)
Definition: markers.cpp:178
grk::TileCodingParams::ppt_markers
grk_ppx * ppt_markers
ppt markers data (table indexed by Zppt)
Definition: CodingParams.h:146
grk::BufferedStream::write_24
bool write_24(uint32_t value)
Definition: BufferedStream.cpp:188
_grk_marker_info::type
uint16_t type
marker type
Definition: grok.h:969
grk::j2k_read_siz
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
grk::J2K_MCT_ARRAY_TYPE
J2K_MCT_ARRAY_TYPE
Type of MCT array.
Definition: CodingParams.h:41
J2K_MS_QCD
#define J2K_MS_QCD
QCD marker value.
Definition: CodeStream.h:81
grk::TileCodingParams::ppt
bool ppt
If ppt == true --> there was a PPT marker for the present tile.
Definition: CodingParams.h:195
grk::j2k_read_int16_to_float
void j2k_read_int16_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:54
grk::j2k_compare_qcc
bool j2k_compare_qcc(CodeStream *codeStream, uint32_t first_comp_no, uint32_t second_comp_no)
Compare QCC markers (quantization component)
Definition: markers.cpp:717
grk::j2k_read_int32_to_float
void j2k_read_int32_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:58
ojph::population_count
static ui32 population_count(ui32 val)
Definition: ojph_arch.h:73
grk::default_number_mcc_records
const uint32_t default_number_mcc_records
Definition: CodeStream.h:59
grk::j2k_read_crg
bool j2k_read_crg(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a CRG marker (Component registration)
Definition: markers.cpp:938
S
#define S(i)
grk::j2k_read_mco
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:1866
grk::j2k_read_ppt
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:1032
grk::j2k_write_SPCod_SPCoc
bool j2k_write_SPCod_SPCoc(CodeStream *codeStream, uint32_t comp_no)
Writes a SPCod or SPCoc element, i.e.
Definition: markers.cpp:2132
grk::TileCodingParams::m_mct_decoding_matrix
float * m_mct_decoding_matrix
the mct decoding matrix
Definition: CodingParams.h:176
GRK_MAX_COMMENT_LENGTH
#define GRK_MAX_COMMENT_LENGTH
Definition: grok.h:352
grk::TileCodingParams::ppt_len
size_t ppt_len
size of ppt_data
Definition: CodingParams.h:155
grk::j2k_write_tlm_end
bool j2k_write_tlm_end(CodeStream *codeStream)
End writing the updated tlm.
Definition: markers.cpp:2080
_grk_codestream_index::codestream_size
uint64_t codestream_size
code stream's size
Definition: grok.h:1164
_grk_codestream_index::marknum
uint32_t marknum
number of markers
Definition: grok.h:1166
J2K_CP_CSTY_EPH
#define J2K_CP_CSTY_EPH
Definition: CodeStream.h:64
grk::j2k_write_float_to_int16
void j2k_write_float_to_int16(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:86
grk::j2k_write_cod
bool j2k_write_cod(CodeStream *codeStream)
Writes the COD marker (Coding style default)
Definition: markers.cpp:385
_grk_marker_info::len
uint32_t len
length, marker value included
Definition: grok.h:973
grk::j2k_write_mco
bool j2k_write_mco(CodeStream *codeStream)
Writes the MCO marker (Multiple component transformation ordering)
Definition: markers.cpp:1827
grk::j2k_write_mct_record
bool j2k_write_mct_record(grk_mct_data *p_mct_record, BufferedStream *stream)
Writes the MCT marker (Multiple Component Transform)
Definition: markers.cpp:1355
GRK_PROG_ORDER
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
grk::CodingParams
Coding parameters.
Definition: CodingParams.h:235
grk::j2k_read_com
bool j2k_read_com(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a COM marker (comments)
Definition: markers.cpp:335
grk::j2k_read_SQcd_SQcc
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:2321
grk::CodeStream
Definition: CodeStream.h:164
grk::j2k_write_coc
bool j2k_write_coc(CodeStream *codeStream, uint32_t comp_no)
Definition: markers.cpp:534
grk::j2k_read_plt
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:986
J2K_MS_COD
#define J2K_MS_COD
COD marker value.
Definition: CodeStream.h:78
grk::j2k_write_cap
bool j2k_write_cap(CodeStream *codeStream)
Writes the CAP marker.
Definition: markers.cpp:227
grk::CodeStream::m_cp
CodingParams m_cp
Coding parameters.
Definition: CodeStream.h:309
grk::j2k_write_tlm_begin
bool j2k_write_tlm_begin(CodeStream *codeStream)
Begin writing the TLM marker (Tile Length Marker)
Definition: markers.cpp:2066
grk::j2k_copy_tile_component_parameters
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
grk::j2k_write_soc
bool j2k_write_soc(CodeStream *codeStream)
Writes the SOC marker (Start Of Codestream)
Definition: markers.cpp:136
grk::SPCod_SPCoc_len
const uint32_t SPCod_SPCoc_len
Definition: CodeStream.h:35
J2K_CCP_CSTY_PRT
#define J2K_CCP_CSTY_PRT
Definition: CodeStream.h:65
D
#define D(i)
grk::getPocSize
uint16_t getPocSize(uint32_t nb_comp, uint32_t nb_poc)
Definition: markers.cpp:773
grk::CodingParams::pcap
uint32_t pcap
Definition: CodingParams.h:244
grk::grk_mct_data::m_index
uint32_t m_index
Definition: CodingParams.h:99
grk::j2k_write
void j2k_write(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:43
grk::PPMMarker::merge
bool merge(void)
Merges all PPM markers read (Packed headers, main header)
Definition: PPMMarker.cpp:108
grk::CodingParams::comment
char * comment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: CodingParams.h:257
grk::j2k_add_mhmarker
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
grk::j2k_read_poc
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:844
grk::j2k_read_cap
bool j2k_read_cap(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a CAP marker.
Definition: markers.cpp:193
grk::TileCodingParams::ppt_buffer
uint8_t * ppt_buffer
used to keep a track of the allocated memory
Definition: CodingParams.h:151
grk::CodingParams::ppm_marker
PPMMarker * ppm_marker
Definition: CodingParams.h:265
_grk_image_comp::sgnd
bool sgnd
Definition: grok.h:878
_grk_codestream_index::maxmarknum
uint32_t maxmarknum
actual size of markers array
Definition: grok.h:1170
grk::TileLengthMarkers::write_end
bool write_end(void)
Definition: LengthMarkers.cpp:183
grk::j2k_add_mct
bool j2k_add_mct(TileCodingParams *p_tcp, grk_image *p_image, uint32_t index)
Definition: markers.cpp:1911
grk::j2k_read_cod
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
grk::TileCodingParams::m_nb_mcc_records
uint32_t m_nb_mcc_records
the number of mct records.
Definition: CodingParams.h:188
grk::j2k_write_all_coc
bool j2k_write_all_coc(CodeStream *codeStream)
Writes COC marker for each component.
Definition: markers.cpp:1294
GRK_NUM_COMMENTS_SUPPORTED
#define GRK_NUM_COMMENTS_SUPPORTED
Definition: grok.h:350
grk::grk_ppx::m_data_size
uint32_t m_data_size
Definition: PPMMarker.h:30
grk::j2k_write_com
bool j2k_write_com(CodeStream *codeStream)
Writes the COM marker (comment)
Definition: markers.cpp:293
grk::j2k_read_qcc
bool j2k_read_qcc(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a QCC marker (Quantization component)
Definition: markers.cpp:729
grk
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: BitIO.cpp:23
grk::SOTMarker::read
bool read(uint8_t *p_header_data, uint16_t header_size)
Decompress a SOT marker (Start of tile-part)
Definition: SOTMarker.cpp:110
grk::TileLengthMarkers::write_update
void write_update(uint16_t tileIndex, uint32_t tile_part_size)
Definition: LengthMarkers.cpp:178
grk::TileCodingParams::ppt_data_size
size_t ppt_data_size
Number of bytes stored inside ppt_data.
Definition: CodingParams.h:153
J2K_MS_CAP
#define J2K_MS_CAP
CAP marker value.
Definition: CodeStream.h:76
grk::TileComponentCodingParams::m_dc_level_shift
int32_t m_dc_level_shift
the dc_level_shift
Definition: CodingParams.h:88
grk::j2k_merge_ppt
bool j2k_merge_ppt(TileCodingParams *p_tcp)
Merges all PPT markers read (Packed packet headers, tile-part header)
Definition: markers.cpp:1110
grk::grk_malloc
void * grk_malloc(size_t size)
Allocate an uninitialized memory block.
Definition: MemManager.cpp:105
grk_includes.h
grk::grk_simple_mcc_decorrelation_data
MCC decorrelation data.
Definition: CodingParams.h:107
grk::CodingParams::tcps
TileCodingParams * tcps
tile coding parameters
Definition: CodingParams.h:268
grk::j2k_read_float32_to_float
void j2k_read_float32_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:62
J2K_MS_MCC
#define J2K_MS_MCC
MCC marker value.
Definition: CodeStream.h:94
grk::j2k_read_ppm
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:1006
grk::j2k_write_float_to_float64
void j2k_write_float_to_float64(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:98
_grk_marker_info::pos
uint64_t pos
position in code stream
Definition: grok.h:971
grk::grk_ppx::m_data
uint8_t * m_data
Definition: PPMMarker.h:29
grk::j2k_compare_coc
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:570
grk::Quantizer::apply_quant
void apply_quant(TileComponentCodingParams *src, TileComponentCodingParams *dest)
Definition: Quantizer.cpp:70
grk::j2k_read_coc
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:591
grk::SIZMarker::write
bool write(CodeStream *codeStream, BufferedStream *stream)
Write the SIZ marker (image and tile size)
Definition: SIZMarker.cpp:299
grk::j2k_read_rgn
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:1222
grk::j2k_write_SQcd_SQcc
bool j2k_write_SQcd_SQcc(CodeStream *codeStream, uint32_t comp_no)
Writes a SQcd or SQcc element, i.e.
Definition: markers.cpp:2310
grk::J2K_DEC_STATE_MH_SIZ
@ J2K_DEC_STATE_MH_SIZ
a SIZ marker is expected
Definition: CodingParams.h:290
ojph_arch.h
grk::grk_realloc
void * grk_realloc(void *ptr, size_t new_size)
Reallocate memory blocks.
Definition: MemManager.cpp:135
grk::j2k_read_qcd
bool j2k_read_qcd(CodeStream *codeStream, uint8_t *p_header_data, uint16_t header_size)
Reads a QCD marker (Quantization defaults)
Definition: markers.cpp:660
J2K_MS_POC
#define J2K_MS_POC
POC marker value.
Definition: CodeStream.h:83
grk::j2k_read_SPCod_SPCoc
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:2171
grk::CodingParams::isBinaryComment
bool isBinaryComment[GRK_NUM_COMMENTS_SUPPORTED]
Definition: CodingParams.h:259
_grk_marker_info
Marker info.
Definition: grok.h:967
grk::TileProcessor::plt_markers
PacketLengthMarkers * plt_markers
Definition: TileProcessor.h:154
grk::j2k_read_mct
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:1393
grk::CodingParams::num_comments
size_t num_comments
comments
Definition: CodingParams.h:256
grk::PacketLengthMarkers
Definition: LengthMarkers.h:88
grk::BufferedStream::write_bytes
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
grk::j2k_merge_ppm
bool j2k_merge_ppm(CodingParams *p_cp)
Merges all PPM markers read (Packed headers, main header)
Definition: markers.cpp:1020
GRK_CPRL
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:295
GRK_J2K_MAX_DECOMP_LVLS
#define GRK_J2K_MAX_DECOMP_LVLS
Maximum number of decomposition levels authorized.
Definition: grok.h:81
grk::grk_mct_data::m_data
uint8_t * m_data
Definition: CodingParams.h:100
grk::grk_mct_data::m_data_size
uint32_t m_data_size
Definition: CodingParams.h:101
J2K_MS_MCO
#define J2K_MS_MCO
MCO marker value.
Definition: CodeStream.h:96
grk::CodeStream::get_current_decode_tcp
TileCodingParams * get_current_decode_tcp(void)
Definition: CodeStream.cpp:1995
J2K_MS_QCC
#define J2K_MS_QCC
QCC marker value.
Definition: CodeStream.h:82
grk::DecoderState::m_state
uint16_t m_state
Decoder state: used to indicate in which part of the code stream the decompressor is (main header,...
Definition: CodingParams.h:322
grk::j2k_get_SQcd_SQcc_size
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:2289
grk::j2k_update_tlm
void j2k_update_tlm(CodeStream *codeStream, uint16_t tile_index, uint32_t tile_part_size)
Updates the Tile Length Marker.
Definition: markers.cpp:2075
grk::j2k_mct_function
void(* j2k_mct_function)(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.h:29
grk::j2k_write_float_to_int32
void j2k_write_float_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:90
grk::j2k_write_float_to_float
void j2k_write_float_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:94
grk::TileLengthMarkers
Definition: LengthMarkers.h:42
grk::j2k_write_mct_data_group
bool j2k_write_mct_data_group(CodeStream *codeStream)
Writes the CBD-MCT-MCC-MCO markers (Multi components transform)
Definition: markers.cpp:1267
grk::j2k_write_regions
bool j2k_write_regions(CodeStream *codeStream)
Writes regions of interests.
Definition: markers.cpp:1323
grk::j2k_mct_read_functions_to_float
static const j2k_mct_function j2k_mct_read_functions_to_float[]
Definition: markers.cpp:35
grk::TileLengthMarkers::write_begin
bool write_begin(uint16_t totalTileParts)
Definition: LengthMarkers.cpp:153
J2K_MS_COC
#define J2K_MS_COC
COC marker value.
Definition: CodeStream.h:79
grk::CodingParams::plm_markers
PacketLengthMarkers * plm_markers
Definition: CodingParams.h:276
grk::TileCodingParams::m_mcc_records
grk_simple_mcc_decorrelation_data * m_mcc_records
mcc records
Definition: CodingParams.h:186
grk::grk_simple_mcc_decorrelation_data::m_decorrelation_array
grk_mct_data * m_decorrelation_array
Definition: CodingParams.h:110
grk::PacketLengthMarkers::readPLM
bool readPLM(uint8_t *p_header_data, uint16_t header_size)
Definition: LengthMarkers.cpp:371
grk::j2k_write_epc
bool j2k_write_epc(CodeStream *codeStream)
Writes EPC ????
Definition: markers.cpp:1339
J2K_CP_CSTY_SOP
#define J2K_CP_CSTY_SOP
Definition: CodeStream.h:63
GRK_CBLKSTY_HT
#define GRK_CBLKSTY_HT
high throughput block coding
Definition: grok.h:101
GRK_J2K_MAXRLVLS
#define GRK_J2K_MAXRLVLS
Maximum number of resolution levels authorized.
Definition: grok.h:82
_grk_image
Image.
Definition: grok.h:890
grk::TileCodingParams::ppt_markers_count
uint32_t ppt_markers_count
number of ppt markers (reserved size)
Definition: CodingParams.h:144
grk::cod_coc_len
const uint32_t cod_coc_len
Definition: CodeStream.h:36
_grk_image_comp::prec
uint8_t prec
precision
Definition: grok.h:877
grk::CodingParams::tlm_markers
TileLengthMarkers * tlm_markers
Definition: CodingParams.h:275
grk::SOTMarker
Definition: SOTMarker.h:28
grk::j2k_compare_SPCod_SPCoc
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:2101
grk::j2k_compare_SQcd_SQcc
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:2299
grk::GRK_ERROR
void GRK_ERROR(const char *fmt,...)
Definition: logger.cpp:57
grk::grk_simple_mcc_decorrelation_data::m_nb_comps
uint32_t m_nb_comps
Definition: CodingParams.h:109
grk::j2k_write_rgn
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:1168
grk::grk_mct_data::m_array_type
J2K_MCT_ARRAY_TYPE m_array_type
Definition: CodingParams.h:98
grk::CodingParams::comment_len
uint16_t comment_len[GRK_NUM_COMMENTS_SUPPORTED]
Definition: CodingParams.h:258
J2K_MS_COM
#define J2K_MS_COM
COM marker value.
Definition: CodeStream.h:92
grk::j2k_read_cbd
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:2017
grk::j2k_write_all_qcc
bool j2k_write_all_qcc(CodeStream *codeStream)
Writes QCC marker for each component.
Definition: markers.cpp:1309
grk::j2k_read_float64_to_float
void j2k_read_float64_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: markers.cpp:66