28typedef void (*
mct_function)(
const void* p_src_data,
void* p_dest_data, uint64_t nb_elem);
139 bool readPpt(uint8_t* headerData, uint16_t headerSize);
155 bool readSPCodSPCoc(uint16_t compno, uint8_t* headerData, uint16_t* headerSize);
168 bool readSQcdSQcc(
bool fromTileHeader,
bool fromQCC, uint16_t compno, uint8_t* headerData,
169 uint16_t* headerSize);
177 bool readCod(uint8_t* headerData, uint16_t headerSize);
185 bool readCoc(uint8_t* headerData, uint16_t headerSize);
194 bool readQcd(
bool fromTileHeader, uint8_t* headerData, uint16_t headerSize);
203 bool readQcc(
bool fromTileHeader, uint8_t* headerData, uint16_t headerSize);
211 bool readRgn(uint8_t* headerData, uint16_t headerSize);
220 bool readPoc(uint8_t* headerData, uint16_t headerSize,
int tilePartIndex);
228 bool readMct(uint8_t* headerData, uint16_t headerSize);
236 bool readMco(uint8_t* headerData, uint16_t headerSize);
244 bool readMcc(uint8_t* headerData, uint16_t headerSize);
246 bool addMct(uint32_t index);
252 void setIsHT(
bool ht,
bool reversible, uint8_t guardBits);
380 std::unique_lock<std::mutex> lock(
mutex_);
385 auto tcp = std::make_unique<TileCodingParams>(
nullptr);
386 it =
tileMap_.emplace(tileIndex, std::move(tcp)).first;
388 return it->second.get();
392 std::unordered_map<uint16_t, std::unique_ptr<TileCodingParams>>
tileMap_;
413 bool readCom(uint8_t* headerData, uint16_t headerSize);
422 bool hasTLM(
void)
const noexcept;
Stores header and data for an image.
Definition GrkImage.h:54
Manages packet buffers and associated packet parsers.
Definition PacketCache.h:30
Caches tile processors so that repeated decompress calls on the same codec can reuse SOT metadata,...
Definition TileCache.h:108
Definition CodingParams.h:374
std::mutex mutex_
Definition CodingParams.h:393
TileCodingParamsPool()=default
std::unordered_map< uint16_t, std::unique_ptr< TileCodingParams > > tileMap_
Definition CodingParams.h:392
TileCodingParams * get(uint16_t tileIndex)
Definition CodingParams.h:378
void(* grk_decompress_callback)(void *codec, uint16_t tile_index, grk_image *tile_image, uint8_t reduction, void *user_data)
Callback called when decompression of a tile has completed.
Definition grok.h:653
#define GRK_NUM_COMMENTS_SUPPORTED
maximum Grok supported number of comments
Definition grok.h:130
#define GRK_MAXRLVLS
Definition grok.h:336
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Environment variables.
#define GRK_MAXBANDS
Definition grok.h:338
@ GRK_PROG_UNKNOWN
Definition grok.h:75
ResWindow.
Definition CompressedChunkCache.h:36
const uint16_t maxCompressLayersGRK
Definition CodeStreamLimits.h:40
void(* mct_function)(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition CodingParams.h:28
MCT_ELEMENT_TYPE
Type of elements storing in the MCT data.
Definition CodingParams.h:33
@ MCT_TYPE_FLOAT
MCT data is stored as signed integers.
Definition CodingParams.h:36
@ MCT_TYPE_INT16
Definition CodingParams.h:34
@ MCT_TYPE_INT32
MCT data is stored as signed shorts.
Definition CodingParams.h:35
@ MCT_TYPE_DOUBLE
MCT data is stored as floats.
Definition CodingParams.h:37
Rect< uint32_t > Rect32
Definition geometry.h:64
MCT_ARRAY_TYPE
Type of MCT array.
Definition CodingParams.h:44
@ MCT_TYPE_OFFSET
Definition CodingParams.h:47
@ MCT_TYPE_DECORRELATION
Definition CodingParams.h:46
@ MCT_TYPE_DEPENDENCY
Definition CodingParams.h:45
Definition CodingParams.h:462
uint32_t totalLength
Definition CodingParams.h:467
uint16_t layno
Definition CodingParams.h:465
uint16_t compno
Definition CodingParams.h:463
uint8_t resno
Definition CodingParams.h:464
uint64_t precinctIndex
Definition CodingParams.h:466
uint32_t headerLength
Definition CodingParams.h:468
Coding parameters.
Definition CodingParams.h:402
void init(grk_decompress_parameters *parameters, std::unique_ptr< TileCache > &tileCache)
Definition CodingParams.cpp:176
uint32_t tx0_
Definition CodingParams.h:429
uint16_t ccap_[32]
Definition CodingParams.h:428
CodingParams()
Definition CodingParams.cpp:161
std::unique_ptr< TLMMarker > tlmMarkers_
Definition CodingParams.h:454
uint16_t t_grid_height_
number of tiles in width
Definition CodingParams.h:439
bool isBinaryComment_[GRK_NUM_COMMENTS_SUPPORTED]
Definition CodingParams.h:437
double dw_y1
Definition CodingParams.h:444
std::unique_ptr< PPMMarker > ppmMarkers_
Definition CodingParams.h:445
union grk::CodingParams::@340150172207352055302072176131177222273307310033 codingParams_
default tile coding parameters
std::unique_ptr< PLMarker > plmMarkers_
Definition CodingParams.h:455
TileCodingParamsPool tcps_
Definition CodingParams.h:446
uint32_t t_height_
XTsiz.
Definition CodingParams.h:432
DecodingParams dec_
Definition CodingParams.h:449
bool readCom(uint8_t *headerData, uint16_t headerSize)
Reads a COM marker (comments).
Definition CodingParams.cpp:235
EncodingParams enc_
Definition CodingParams.h:450
std::vector< std::vector< RecordedPacketInfo > > recordedPacketInfo_
Definition CodingParams.h:471
double dw_x0
number of tiles in height
Definition CodingParams.h:441
size_t numComments_
Definition CodingParams.h:434
bool asynchronous_
Definition CodingParams.h:456
grk_decompress_callback decompressCallback_
Definition CodingParams.h:458
uint8_t getNumTilePartsFromTLM(uint16_t tileIndex) const noexcept
Gets the number of tile parts for a given tile index from TLM marker.
Definition CodingParams.cpp:210
bool hasTLM(void) const noexcept
Definition CodingParams.cpp:206
double dw_y0
Definition CodingParams.h:443
uint16_t commentLength_[GRK_NUM_COMMENTS_SUPPORTED]
Definition CodingParams.h:436
bool recordPacketLengths_
Definition CodingParams.h:470
uint32_t pcap_
Rsiz.
Definition CodingParams.h:427
bool simulate_synchronous_
Definition CodingParams.h:457
void * decompressCallbackUserData_
Definition CodingParams.h:459
std::vector< uint16_t > compsToDecompress_
Component indices to decode during decompression.
Definition CodingParams.h:453
uint16_t t_grid_width_
Definition CodingParams.h:438
uint32_t ty0_
XTOsiz.
Definition CodingParams.h:430
uint16_t rsiz_
Definition CodingParams.h:426
double dw_x1
Definition CodingParams.h:442
uint32_t t_width_
YTOsiz.
Definition CodingParams.h:431
char * comment_[GRK_NUM_COMMENTS_SUPPORTED]
comments
Definition CodingParams.h:435
~CodingParams()
Definition CodingParams.cpp:169
std::mutex commentMutex
YTsiz.
Definition CodingParams.h:433
Rect32 getTileBounds(Rect32 imageBounds, uint16_t tile_x, uint16_t tile_y) const
Definition CodingParams.cpp:216
Definition CodingParams.h:359
bool skipAllocateComposite_
Definition CodingParams.h:367
uint32_t disableRandomAccessFlags_
Definition CodingParams.h:366
uint16_t layersToDecompress_
if != 0, then only the first "layersToDecompress_" layers are decompressed; if == 0 or not used,...
Definition CodingParams.h:365
bool fast16BitMct_
Definition CodingParams.h:368
uint8_t reduce_
if != 0, then original dimension divided by 2^(reduce); if == 0 or not used, image is decompressed to...
Definition CodingParams.h:362
Definition CodingParams.h:336
size_t maxComponentRate_
Maximum rate for each component.
Definition CodingParams.h:339
uint8_t newTilePartProgressionPosition_
Position of tile part flag in progression order.
Definition CodingParams.h:341
bool allocationByRateDistortion_
allocation by rate/distortion
Definition CodingParams.h:345
uint32_t rateControlAlgorithm_
Definition CodingParams.h:355
bool writePlt_
Definition CodingParams.h:351
bool writeTlm_
Definition CodingParams.h:353
bool enableTilePartGeneration_
Enabling Tile part generation.
Definition CodingParams.h:349
uint8_t newTilePartProgressionDivider_
Flag determining tile part generation.
Definition CodingParams.h:343
bool allocationByFixedQuality_
allocation by fixed_quality
Definition CodingParams.h:347
Definition Quantizer.h:37
Reads/writes TLM markers.
Definition TLMMarker.h:167
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition CodingParams.h:124
uint32_t mainQcdQntsty
Definition CodingParams.h:291
float * mctDecodingMatrix_
the mct decoding matrix
Definition CodingParams.h:307
bool hasPoc(void)
Definition CodingParams.cpp:1885
bool mergePpt(void)
Merges all PPT markers read (Packed headers, tile-part header).
Definition CodingParams.cpp:1734
uint32_t numMaxMctRecords_
the max number of mct records.
Definition CodingParams.h:315
uint32_t cod_
If cod == true --> there was a COD marker for the present tile.
Definition CodingParams.h:323
grk_mct_data * mctRecords_
mct records
Definition CodingParams.h:311
uint8_t tilePartCounter_
Definition CodingParams.h:299
uint32_t numMccRecords_
the number of mct records.
Definition CodingParams.h:319
bool addMct(uint32_t index)
Definition CodingParams.cpp:1306
bool advanceTilePartCounter(uint16_t tileIndex, uint8_t tilePartIndex)
Definition CodingParams.cpp:440
uint8_t signalledNumTileParts_
number of tile parts for the tile, signlled by TLM or SOT marker.
Definition CodingParams.h:301
grk_progression progressionOrderChange_[GRK_MAXRLVLS]
progression order changes
Definition CodingParams.h:277
bool readQcc(bool fromTileHeader, uint8_t *headerData, uint16_t headerSize)
Reads a QCC marker (Quantization component).
Definition CodingParams.cpp:521
uint16_t numComps_
Definition CodingParams.h:327
bool validateQuantization(void)
Definition CodingParams.cpp:1778
TileCodingParams & operator=(const TileCodingParams &)=delete
uint16_t numLayers_
number of layers
Definition CodingParams.h:267
uint32_t numMaxMccRecords_
the max number of mct records.
Definition CodingParams.h:321
bool ppt_
If ppt == true --> there was a PPT marker for the present tile.
Definition CodingParams.h:325
uint8_t * pptBuffer_
used to keep a track of the allocated memory
Definition CodingParams.h:285
uint8_t csty_
coding style
Definition CodingParams.h:263
void updateLayersToDecompress(void)
Definition CodingParams.cpp:1375
uint8_t * pptData_
packet header store there for future use in t2_decode_packet
Definition CodingParams.h:283
CodingParams * cp_
Definition CodingParams.h:258
bool readQcd(bool fromTileHeader, uint8_t *headerData, uint16_t headerSize)
Reads a QCD marker (Quantization defaults).
Definition CodingParams.cpp:485
uint16_t layersToDecompress_
Definition CodingParams.h:269
uint8_t mct_
multi-component transform identifier
Definition CodingParams.h:271
bool readMco(uint8_t *headerData, uint16_t headerSize)
Reads a MCO marker (Multiple Component Transform Ordering).
Definition CodingParams.cpp:1028
uint32_t pptMarkersCount_
number of ppt markers (reserved size)
Definition CodingParams.h:279
size_t pptLength_
size of ppt_data
Definition CodingParams.h:287
float * mctCodingMatrix_
the mct coding matrix
Definition CodingParams.h:309
bool readMcc(uint8_t *headerData, uint16_t headerSize)
Reads a MCC marker (Multiple Component Collection).
Definition CodingParams.cpp:1074
bool isHT(void)
Definition CodingParams.cpp:1877
uint32_t mainQcdNumStepSizes
Definition CodingParams.h:293
void setIsHT(bool ht, bool reversible, uint8_t guardBits)
Definition CodingParams.cpp:1870
bool readPpt(uint8_t *headerData, uint16_t headerSize)
Reads a PPT marker (Packed packet headers, tile-part header).
Definition CodingParams.cpp:1660
bool initDefault(GrkImage *headerImage)
Definition CodingParams.cpp:458
uint32_t getNumProgressions(void)
Definition CodingParams.cpp:1881
double distortion_[maxCompressLayersGRK]
fixed_quality
Definition CodingParams.h:289
TileComponentCodingParams * tccps_
tile-component coding parameters
Definition CodingParams.h:295
double * mct_norms_
compressing norms
Definition CodingParams.h:305
void finalizePocs(void)
Definition CodingParams.cpp:807
bool readRgn(uint8_t *headerData, uint16_t headerSize)
Reads a RGN marker (Region Of Interest).
Definition CodingParams.cpp:686
bool wholeTileDecompress_
Definition CodingParams.h:260
~TileCodingParams()
Definition CodingParams.cpp:410
bool readCoc(uint8_t *headerData, uint16_t headerSize)
Reads a COC marker (Coding Style Component).
Definition CodingParams.cpp:566
std::vector< std::vector< grk_progression > > pocLists_
Definition CodingParams.h:332
bool readSQcdSQcc(bool fromTileHeader, bool fromQCC, uint16_t compno, uint8_t *headerData, uint16_t *headerSize)
Reads a SQcd or SQcc element, i.e.
Definition CodingParams.cpp:1381
uint32_t numMctRecords_
the number of mct records.
Definition CodingParams.h:313
grk_ppx * pptMarkers_
ppt markers data (table indexed by Zppt)
Definition CodingParams.h:281
TileCodingParams(CodingParams *cp)
Definition CodingParams.cpp:287
PacketCache * packets_
Definition CodingParams.h:303
bool readSPCodSPCoc(uint16_t compno, uint8_t *headerData, uint16_t *headerSize)
Reads a SPCod or SPCoc element, i.e.
Definition CodingParams.cpp:1528
bool readCod(uint8_t *headerData, uint16_t headerSize)
Reads a COD marker (Coding Style defaults).
Definition CodingParams.cpp:602
bool readPoc(uint8_t *headerData, uint16_t headerSize, int tilePartIndex)
Reads a POC marker (Progression Order Change).
Definition CodingParams.cpp:727
bool readMct(uint8_t *headerData, uint16_t headerSize)
Reads a MCT marker (Multiple Component Transform).
Definition CodingParams.cpp:909
double rates_[maxCompressLayersGRK]
rates of layers
Definition CodingParams.h:273
grk_simple_mcc_decorrelation_data * mccRecords_
mcc records
Definition CodingParams.h:317
uint32_t numpocs_
number of progression order changes
Definition CodingParams.h:275
std::mutex pocMutex_
Definition CodingParams.h:331
GRK_PROG_ORDER prg_
progression order
Definition CodingParams.h:265
Quantizer * qcd_
Definition CodingParams.h:326
bool ht_
Definition CodingParams.h:330
Tile-component coding parameters.
Definition CodingParams.h:54
int32_t dcLevelShift_
the dc_level_shift
Definition CodingParams.h:90
uint8_t numgbits_
number of guard bits
Definition CodingParams.h:82
uint8_t qntsty_
quantisation style
Definition CodingParams.h:76
uint8_t qmfbid_
discrete wavelet transform identifier
Definition CodingParams.h:67
grk_stepsize stepsizes_[GRK_MAXBANDS]
stepsizes used for quantization
Definition CodingParams.h:78
uint8_t cblkw_expn_
log2(code-blocks width)
Definition CodingParams.h:61
uint8_t numStepSizes_
Definition CodingParams.h:80
bool fromTileHeader_
Definition CodingParams.h:74
uint8_t cblkStyle_
code-block mode
Definition CodingParams.h:65
uint8_t precHeightExp_[GRK_MAXRLVLS]
precinct height (power of 2 exponent, < 16)
Definition CodingParams.h:88
uint8_t roishift_
Region Of Interest shift.
Definition CodingParams.h:84
uint8_t numresolutions_
number of resolutions
Definition CodingParams.h:59
uint8_t precWidthExp_[GRK_MAXRLVLS]
precinct width (power of 2 exponent, < 16)
Definition CodingParams.h:86
TileComponentCodingParams()
Definition CodingParams.cpp:1889
bool quantizationMarkerSet_
Definition CodingParams.h:70
uint8_t cblkh_expn_
log2(code-blocks height)
Definition CodingParams.h:63
bool fromQCC_
Definition CodingParams.h:72
uint8_t csty_
coding style
Definition CodingParams.h:57
MCT data.
Definition CodingParams.h:97
uint32_t data_size_
Definition CodingParams.h:102
MCT_ELEMENT_TYPE element_type_
Definition CodingParams.h:98
MCT_ARRAY_TYPE array_type_
Definition CodingParams.h:99
uint32_t index_
Definition CodingParams.h:100
uint8_t * data_
Definition CodingParams.h:101
Definition PPMMarker.h:27
MCC decorrelation data.
Definition CodingParams.h:109
grk_mct_data * decorrelation_array_
Definition CodingParams.h:112
uint32_t index_
Definition CodingParams.h:110
uint32_t nb_comps_
Definition CodingParams.h:111
uint32_t is_irreversible_
Definition CodingParams.h:114
grk_mct_data * offset_array_
Definition CodingParams.h:113
Quantization stepsize.
Definition Quantizer.h:28
Decompression parameters.
Progression order change (POC).