Grok  9.5.0
PacketManager.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 
18 #pragma once
19 
20 namespace grk
21 {
23 {
24  public:
25  PacketManager(bool compression, GrkImage* img, CodingParams* cparams, uint16_t tilenumber,
26  J2K_T2_MODE t2_mode, TileProcessor* tileProc);
27  virtual ~PacketManager();
28  PacketIter* getPacketIter(uint32_t poc) const;
35  void enableTilePartGeneration(uint32_t pino, bool first_poc_tile_part, uint32_t tppos);
43  static void updateCompressParams(const GrkImage* p_image, CodingParams* p_cp, uint16_t tile_no);
44 
46  uint32_t getNumProgressions(void);
48 
49  private:
64  static void updateCompressTcpProgressions(CodingParams* p_cp, uint16_t num_comps,
65  uint16_t tileno, grkRectU32 tileBounds,
66  uint64_t max_precincts, uint8_t max_res,
67  uint32_t dx_min, uint32_t dy_min, bool poc);
86  static void getParams(const GrkImage* image, const CodingParams* p_cp, uint16_t tileno,
87  grkRectU32* tileBounds, uint32_t* dx_min, uint32_t* dy_min,
88  uint64_t* precincts, uint64_t* max_precincts, uint8_t* max_res,
89  uint32_t** precinctByComponent);
93  bool checkForRemainingValidProgression(int32_t prog, uint32_t pino, const char* progString);
94 
95  void init(TileCodingParams* tcp, uint8_t max_res, uint64_t max_precincts);
98  uint16_t tileno;
103 };
104 
105 } // namespace grk
Definition: GrkImage.h:19
Definition: PacketManager.h:23
IncludeTracker * includeTracker
Definition: PacketManager.h:99
uint16_t tileno
Definition: PacketManager.h:98
void enableTilePartGeneration(uint32_t pino, bool first_poc_tile_part, uint32_t tppos)
Modify the packet iterator for enabling tile part generation.
Definition: PacketManager.cpp:172
PacketIter * m_pi
Definition: PacketManager.h:100
TileProcessor * getTileProcessor(void)
Definition: PacketManager.cpp:145
J2K_T2_MODE t2Mode
Definition: PacketManager.h:101
static void updateCompressParams(const GrkImage *p_image, CodingParams *p_cp, uint16_t tile_no)
Updates the compressing parameters of the codec.
Definition: PacketManager.cpp:590
TileProcessor * tileProcessor
Definition: PacketManager.h:102
IncludeTracker * getIncludeTracker(void)
Definition: PacketManager.cpp:670
virtual ~PacketManager()
Definition: PacketManager.cpp:128
GrkImage * image
Definition: PacketManager.h:96
uint32_t getNumProgressions(void)
Definition: PacketManager.cpp:137
PacketIter * getPacketIter(uint32_t poc) const
Definition: PacketManager.cpp:141
PacketManager(bool compression, GrkImage *img, CodingParams *cparams, uint16_t tilenumber, J2K_T2_MODE t2_mode, TileProcessor *tileProc)
Definition: PacketManager.cpp:22
void init(TileCodingParams *tcp, uint8_t max_res, uint64_t max_precincts)
Definition: PacketManager.cpp:150
static void updateCompressTcpProgressions(CodingParams *p_cp, uint16_t num_comps, uint16_t tileno, grkRectU32 tileBounds, uint64_t max_precincts, uint8_t max_res, uint32_t dx_min, uint32_t dy_min, bool poc)
Updates the coding parameters.
Definition: PacketManager.cpp:564
CodingParams * cp
Definition: PacketManager.h:97
bool checkForRemainingValidProgression(int32_t prog, uint32_t pino, const char *progString)
Check if there is a remaining valid progression order.
Definition: PacketManager.cpp:610
static void getParams(const GrkImage *image, const CodingParams *p_cp, uint16_t tileno, grkRectU32 *tileBounds, uint32_t *dx_min, uint32_t *dy_min, uint64_t *precincts, uint64_t *max_precincts, uint8_t *max_res, uint32_t **precinctByComponent)
Get the compression parameters needed to update the coding parameters and all the pocs.
Definition: PacketManager.cpp:486
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: ICacheable.h:20
J2K_T2_MODE
Definition: PacketIter.h:33
Coding parameters.
Definition: CodingParams.h:242
Definition: PacketIter.h:84
Packet iterator.
Definition: PacketIter.h:163
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition: CodingParams.h:122
Tile processor for decompression and compression.
Definition: TileProcessor.h:77